Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 谷歌静态地图半径缩放_Php_Web Services_Google Maps - Fatal编程技术网

Php 谷歌静态地图半径缩放

Php 谷歌静态地图半径缩放,php,web-services,google-maps,Php,Web Services,Google Maps,我正在PHP中开发一个web服务,它以公里为单位获取纬度、经度和半径并生成 我还显示了数据库中该半径内的所有点 我的问题是如何在谷歌的zoom参数中隐藏我的radius,以确保所有点在地图上都可见 类似于:http://maps.googleapis.com/maps/api/staticmap?center=New+纽约州约克市&[*此参数*zoom=13]&size=600x300&标记……请查看LatLngBounds和map.fitbunds方法 看看LatLngBounds和map.f

我正在
PHP
中开发一个web服务,它以公里为单位获取纬度、经度和半径并生成

我还显示了数据库中该半径内的所有点

我的问题是如何在谷歌的
zoom
参数中隐藏我的
radius
,以确保所有点在地图上都可见


类似于:
http://maps.googleapis.com/maps/api/staticmap?center=New+纽约州约克市&[*此参数*zoom=13]&size=600x300&标记……

请查看LatLngBounds和map.fitbunds方法

看看LatLngBounds和map.fitbunds方法

看看LatLngBounds和map.fitbunds方法

看看LatLngBounds和map.fitbunds方法

如所述:

因为基本墨卡托谷歌地图分幅是256 x 256像素。
还请注意,每个缩放级别,贴图都有2个n分幅

这意味着在zoomLevel 2,地图任何方向上的像素都是=256*2²=1024px

考虑到地球周长约为40000公里,在缩放0时,每个像素~=40000公里/256=156.25公里
在缩放9时,像素为131072:
1px=40000公里/131072=0.305公里。。。等等

如果您的图像是640 x 640 px,并且您正在使用zoom 9,这意味着您将覆盖~640*0.305~=195km。因此,您的半径约为100公里。
每次缩放++,半径是一半

如果使用zoom 15(1px=0.00478km),图像将覆盖~3km宽(半径1.5km)

考虑到当你进一步向北或向南移动时,真实距离会更小,因为失真更大

您可以使用zoom=Floor(log2(EarthP*2像素地图/(256*半径))之类的参数

  • EarthP=该纬度的地球周长(单位:km)
  • PixMap=将显示的地图像素
  • 半径=要在图像中显示的半径(以公里为单位)
  • 对数2=以2为底的对数
注意:要将log2转换为常规日志,只需执行以下操作:
地板((对数(地平面*2像素地图/(256*半径)))/对数2)

参见以下所述的:

因为基本墨卡托谷歌地图分幅是256 x 256像素。
还请注意,每个缩放级别,贴图都有2个n分幅

这意味着在zoomLevel 2,地图任何方向上的像素都是=256*2²=1024px

考虑到地球周长约为40000公里,在缩放0时,每个像素~=40000公里/256=156.25公里
在缩放9时,像素为131072:
1px=40000公里/131072=0.305公里。。。等等

如果您的图像是640 x 640 px,并且您正在使用zoom 9,这意味着您将覆盖~640*0.305~=195km。因此,您的半径约为100公里。
每次缩放++,半径是一半

如果使用zoom 15(1px=0.00478km),图像将覆盖~3km宽(半径1.5km)

考虑到当你进一步向北或向南移动时,真实距离会更小,因为失真更大

您可以使用zoom=Floor(log2(EarthP*2像素地图/(256*半径))之类的参数

  • EarthP=该纬度的地球周长(单位:km)
  • PixMap=将显示的地图像素
  • 半径=要在图像中显示的半径(以公里为单位)
  • 对数2=以2为底的对数
注意:要将log2转换为常规日志,只需执行以下操作:
地板((对数(地平面*2像素地图/(256*半径)))/对数2)

参见以下所述的:

因为基本墨卡托谷歌地图分幅是256 x 256像素。
还请注意,每个缩放级别,贴图都有2个n分幅

这意味着在zoomLevel 2,地图任何方向上的像素都是=256*2²=1024px

考虑到地球周长约为40000公里,在缩放0时,每个像素~=40000公里/256=156.25公里
在缩放9时,像素为131072:
1px=40000公里/131072=0.305公里。。。等等

如果您的图像是640 x 640 px,并且您正在使用zoom 9,这意味着您将覆盖~640*0.305~=195km。因此,您的半径约为100公里。
每次缩放++,半径是一半

如果使用zoom 15(1px=0.00478km),图像将覆盖~3km宽(半径1.5km)

考虑到当你进一步向北或向南移动时,真实距离会更小,因为失真更大

您可以使用zoom=Floor(log2(EarthP*2像素地图/(256*半径))之类的参数

  • EarthP=该纬度的地球周长(单位:km)
  • PixMap=将显示的地图像素
  • 半径=要在图像中显示的半径(以公里为单位)
  • 对数2=以2为底的对数
注意:要将log2转换为常规日志,只需执行以下操作:
地板((对数(地平面*2像素地图/(256*半径)))/对数2)

参见以下所述的:

因为基本墨卡托谷歌地图分幅是256 x 256像素。
还请注意,每个缩放级别,贴图都有2个n分幅

这意味着在zoomLevel 2,地图任何方向上的像素都是=256*2²=1024px

考虑到地球周长约为40000公里,在缩放0时,每个像素~=40000公里/256=156.25公里
在缩放9时,像素为131072:
1px=40000公里/131072=0.305公里。。。等等

如果您的图像是640 x 640 px,并且您正在使用zoom 9,这意味着您将覆盖~640*0.305~=195km。因此,您的半径约为100公里。
每次缩放++,半径是一半

如果使用zoom 15(1px=0.00478km),图像将覆盖~3km宽(半径1.5km)

考虑到当你进一步向北或向南移动时,真实距离会更小,因为失真更大

您可以使用zoom=Floor(log2(EarthP*2像素地图/(256*半径))之类的参数