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为底的对数
地板((对数(地平面*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为底的对数
地板((对数(地平面*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为底的对数
地板((对数(地平面*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)