Rumah  >  Artikel  >  Java  >  Bagaimanakah anda menukar latitud dan longitud kepada unjuran Mercator?

Bagaimanakah anda menukar latitud dan longitud kepada unjuran Mercator?

Barbara Streisand
Barbara Streisandasal
2024-11-08 18:31:02173semak imbas

How do you convert latitude and longitude to Mercator projections?

Unjuran Mercator: Menukar Latitud/Longitud kepada Unjuran Mercator

Unjuran Mercator ialah unjuran peta yang selaras dan sama jarak di sepanjang garis tertentu. Ia mengekalkan bentuk tetapi bukan kawasan dan digunakan secara meluas untuk carta navigasi.

Menukar Latitud/Longitud kepada Unjuran Mercator

Untuk menukar titik latitud/longitud kepada Unjuran Mercator, kami menggunakan formula berikut:

E = FE + R (λ – λₒ)
N = FN + R ln[tan(π/4 + φ/2)] 

di mana:

  • E ialah unjuran Timur
  • N ialah unjuran Utara
  • λ ialah longitud
  • φ ialah latitud
  • FE ialah false easting
  • FN ialah false northing
  • λₒ ialah longitud asal semula jadi

Untuk Sfera Mercator, FE dan FN ialah 0, memudahkan formula kepada:

E = R * (λ – λₒ)
N = R * ln[tan(π/4 + φ/2)]

Contoh Kod

Dalam pseudo kod, kami menukar latitud dan longitud kepada unjuran Mercator seperti berikut:

latitude    = 41.145556; // (φ)
longitude   = -73.995;   // (λ)

mapWidth    = 200;
mapHeight   = 100;

// get x value
x = (longitude+180)*(mapWidth/360)

// convert from degrees to radians
latRad = latitude*PI/180

// get y value
mercN = ln(tan((PI/4)+(latRad/2)));
y     = (mapHeight/2)-(mapWidth*mercN/(2*PI));

Dengan menggunakan formula ini dan menukar daripada radian kepada darjah mengikut keperluan, kami boleh menukar titik latitud/longitud kepada unjuran Mercator dengan tepat. Pengetahuan ini penting untuk memaparkan data pada peta yang diunjurkan Mercator.

Atas ialah kandungan terperinci Bagaimanakah anda menukar latitud dan longitud kepada 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