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

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

Mary-Kate Olsen
Lepaskan: 2024-11-07 15:18:02
asal
316 orang telah melayarinya

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

Menukar Latitud dan Longitud kepada Koordinat Piksel Unjuran Mercator

Untuk memaparkan koordinat geografi pada imej unjuran Mercator, anda perlu menukar latitud dan longitud nilai ke dalam koordinat piksel yang sepadan.

Sifat Unjuran Mercator

Unjuran Mercator ialah unjuran peta konform yang mengekalkan sudut antara garis bersilang. Latitud diwakili oleh garis lurus mendatar, manakala longitud diwakili oleh garis lurus menegak.

Formula Penukaran

Untuk memperoleh koordinat Timur (x) dan Utara (y) daripada latitud dan longitud, formula berikut boleh digunakan:

E = R * (λ - λₒ)
N = R * ln[tan(π/4 + φ/2)]
Salin selepas log masuk

di mana:

  • R ialah jejari Bumi (diandaikan sfera untuk kesederhanaan)
  • λ ialah longitud (longitud asal semula jadi biasanya ditetapkan kepada 0°)
  • λₒ ialah longitud meridian tengah
  • φ ialah latitud

Mempermudahkan formula untuk unjuran Mercator sfera:

x = R * λ
y = R * ln[tan((π/4) + (φ/2))]
Salin selepas log masuk

Pelaksanaan Kod

Berikut ialah contoh dalam Python yang melakukan penukaran:

import math

earth_radius = 6371000 # in meters

def mercator_projection(latitude, longitude, map_width, map_height):
    """Converts latitude and longitude to Mercator projection pixel coordinates.

    Args:
        latitude (float): Latitude in degrees.
        longitude (float): Longitude in degrees.
        map_width (float): Width of the map image in pixels.
        map_height (float): Height of the map image in pixels.

    Returns:
        tuple: A tuple containing the x and y pixel coordinates.
    """

    # Convert latitude and longitude to radians
    latitude_radians = math.radians(latitude)
    longitude_radians = math.radians(longitude)

    # Calculate x and y pixel coordinates
    x = (longitude_radians + math.pi) * (map_width / (2 * math.pi))
    y = (map_height / 2) - (map_height * math.log(math.tan((math.pi / 4) + (latitude_radians / 2))) / (2 * math.pi))

    return x, y
Salin selepas log masuk

Contoh Penggunaan

map_width = 991
map_height = 768

latitude = 58.07
longitude = -5.93

x, y = mercator_projection(latitude, longitude, map_width, map_height)

print(f"x: {x}, y: {y}")
Salin selepas log masuk

Ini akan memaparkan koordinat piksel pada imej unjuran Mercator untuk latitud dan longitud yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Latitud dan Longitud kepada Koordinat Piksel 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