Rumah > Java > javaTutorial > Bagaimana untuk Menukar Latitud dan Longitud kepada Koordinat Piksel Menggunakan Unjuran Mercator?

Bagaimana untuk Menukar Latitud dan Longitud kepada Koordinat Piksel Menggunakan Unjuran Mercator?

Linda Hamilton
Lepaskan: 2024-11-07 01:58:03
asal
735 orang telah melayarinya

How to Convert Latitude and Longitude to Pixel Coordinates Using the Mercator Projection?

Penukaran Piksel Unjuran Mercator

Unjuran Mercator digunakan secara meluas dalam pemetaan, terutamanya untuk carta navigasi. Ia menukar koordinat latitud dan longitud kepada grid segi empat tepat, menjadikannya ideal untuk memaparkan peta dunia pada permukaan rata.

Penerbitan Formula

Unjuran Mercator diperolehi daripada unjuran silinder. Formula untuk menukar latitud dan longitud kepada koordinat segi empat tepat ialah:

E = FE + R (λ – λ0)
N = FN + R ln[tan(π/4 + φ/2)]
Salin selepas log masuk

di mana:

  • E ialah koordinat Timur
  • N ialah koordinat Utara
  • FE dan FN ialah nilai timur palsu dan utara palsu
  • R ialah jejari Bumi
  • λ ialah longitud
  • λ0 ialah longitud asal semula jadi
  • φ ialah latitud

Dalam unjuran Mercator sfera, FE dan FN tidak digunakan, jadi formula dipermudahkan kepada:

x = (λ + 180) * (mapWidth / 360)
y = (mapHeight / 2) - (mapWidth * ln(tan((PI / 4) + (latRad / 2))) / (2 * PI))
Salin selepas log masuk

di mana:

  • x ialah koordinat Timur dalam piksel
  • y ialah koordinat Utara dalam piksel
  • latRad ialah latitud dalam radian
  • mapWidth dan mapHeight ialah dimensi imej peta dalam piksel

Pelaksanaan

Di Java, anda boleh melaksanakan penukaran unjuran Mercator seperti berikut:

public static void main(String[] args) {
    double latitude = 41.145556;
    double longitude = -73.995;

    double mapWidth = 200;
    double mapHeight = 100;
    
    // Convert latitude from degrees to radians
    double latRad = latitude * Math.PI / 180;

    // Calculate Easting and Northing coordinates
    double x = (longitude + 180) * (mapWidth / 360);
    double y = (mapHeight / 2) - (mapWidth * Math.log(Math.tan((Math.PI / 4) + (latRad / 2))) / (2 * Math.PI));
    
    System.out.println("Easting: " + x);
    System.out.println("Northing: " + y);
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menukar Latitud dan Longitud kepada Koordinat Piksel Menggunakan Unjuran Mercator?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan