緯度経度をメルカトル図法ピクセル座標に変換する
メルカトル図法画像上に地理座標を表示するには、緯度経度を変換する必要があります。
メルカトル図法のプロパティ
メルカトル図法は、交差する線間の角度を保持する正角地図投影法です。緯度は水平の直線で表され、経度は垂直の直線で表されます。
変換式
東距 (x) と北距 (y) の座標を求めるには、緯度と経度については、次の式を使用できます:
E = R * (λ - λₒ) N = R * ln[tan(π/4 + φ/2)]
ここで:
簡略化球面メルカトル図法の公式:
x = R * λ y = R * ln[tan((π/4) + (φ/2))]
コードの実装
変換を実行する Python の例を次に示します:
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
使用例
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}")
指定した緯度経度のメルカトル図法画像上のピクセル座標を表示します。
以上が緯度と経度をメルカトル図法のピクセル座標に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。