Rumah  >  Artikel  >  Java  >  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
Linda Hamiltonasal
2024-11-07 01:58:03699semak imbas

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)]

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))

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);
}

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!

Kenyataan:
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