メルカトル図法を使用して緯度と経度をピクセル座標に変換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-07 01:58:03
オリジナル
647 人が閲覧しました

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

メルカトル図法ピクセル変換

メルカトル図法は、マッピング、特にナビゲーション チャートで広く使用されています。緯度と経度の座標を長方形のグリッドに変換し、平面上に世界地図を表示するのに最適です。

公式の導出

メルカトル図法が導出されます。円筒突起から。緯度と経度を直交座標に変換する式は次のとおりです:

E = FE + R (λ – λ0)
N = FN + R ln[tan(π/4 + φ/2)]
ログイン後にコピー

ここで:

  • E は東座標です
  • N は北座標です
  • FE と FN は偽東経と偽北です値
  • R は地球の半径
  • λ は経度
  • λ0 は自然起源の経度
  • φ は緯度

球面メルカトル図法では、FE と FN は使用されないため、公式は

x = (λ + 180) * (mapWidth / 360)
y = (mapHeight / 2) - (mapWidth * ln(tan((PI / 4) + (latRad / 2))) / (2 * PI))
ログイン後にコピー

ここで:

  • x はピクセル単位の東座標です
  • y はピクセル単位の北座標です
  • latRadラジアン単位の緯度です
  • mapWidth と mapHeight は次の寸法ですピクセル単位の地図画像

実装

Java では、次のようにメルカトル図法変換を実装できます。

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);
}
ログイン後にコピー

以上がメルカトル図法を使用して緯度と経度をピクセル座標に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!