1

Google マップのズーム レベルを考慮して、特定のピクセルの高さと幅を知りたいです。

さまざまなズーム レベルが縮尺に影響することがわかります: http://maps.google.com/maps?q=10.0,0.0&z=2およびhttp://maps.google.com/maps?q=10.0,0.0&z =3は、たとえばニジェールのサイズが異なります。

また、緯度が重要であることもわかります。 http://maps.google.com/maps?q=50.0,0.0&z=3では、スペインとアイスランドは同じ幅に見えますが、スペインは実際には約 2 倍の幅です。

ウィンドウのサイズを変更したり、ビューをドラッグしても国のサイズには影響しないため、マップの境界は問題ではないようです。(ただし、スケールの凡例は影響を受けますが、私は気にしません。)

答えは、ズームレベルと問題のピクセルの緯度の組み合わせに依存するようです。幅と高さの両方に影響があるようです。経度は影響しないようです。数値解法がベストでしょう。

(これは、座標のリストを前処理して、同じピクセルに表示される座標を削除できるようにするためです。)

4

1 に答える 1

0

私の目的に十分近いものを見つけました。これは に変換lat,lngされx,yます。

#from view-source:https://google-developers.appspot.com/maps/documentation/javascript/examples/map-coordinates
sub lat_lng_zoom_to_point ($$$) {
  my ($lat, $lng, $zoom) = @_;
  my $x = 128 + $lng * (256/360);
  my $siny = sin(deg2rad($lat));
  $siny = $siny < -0.9999 ? -0.9999 : $siny > 0.9999 ? 0.9999 : $siny;
  my $y = 128 + 0.5 * log((1 + $siny) / (1 - $siny)) * -(256/(2 * pi));
  return($x * (1 << $zoom), $y * (1 << $zoom));
}
于 2012-05-17T14:48:20.210 に答える