1

给定谷歌地图的缩放级别,我想知道给定像素的高度和宽度。

我可以看到不同的缩放级别会影响比例: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上,西班牙和冰岛的宽度似乎相同,但西班牙的宽度实际上大约是其两倍。

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

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

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

4

1 回答 1

0

我从我的目的中找到了足够接近的东西。这将转换lat,lngx,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 回答