对于给定的缩放级别和视图,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,西班牙和冰岛的宽度似乎相同,但西班牙实际上是宽度的两倍。

地图边界似乎无关紧要,因为调整窗口大小或拖动视图不会影响国家/地区的大小。 (但是,比例图例会受到影响,但我不在乎它。

答案似乎应该取决于缩放级别和所讨论像素纬度的某种组合。 似乎宽度和高度都受到影响。 经度似乎没有影响。 数值解决方案是最好的。

(我想要这个,以便我可以预处理坐标列表以删除将出现在相同像素中的坐标。

我从我的目的中找到了一些足够接近的东西。 这会将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));
}

最新更新