我需要获取一个动态的谷歌地图数据,并使用API V3创建一个静态的谷歌地图。

11

我的目标是允许用户使用谷歌地图创建地图并保存图片。我尝试了一种解决方法,该方法使用了谷歌地图API V3和静态地图API。

用户可以使用动态谷歌地图滚动、缩放等操作,找到他们喜欢的地图后,应该按下一个按钮,提取谷歌地图(中心点、缩放级别等)数据,并将查询发送给静态谷歌地图API。然后,静态谷歌地图API将返回可以保存的图片。

除了有时无法正常工作之外,我已经完全实现了这个功能*。有时,静态谷歌地图返回的图像与动态地图完全相同。其他时候,图像可能会偏离几米(我认为这是因为动态谷歌地图API使用的经度和纬度精度比静态API更高),甚至数千公里(我不知道为什么会发生这种情况)。通常,随着缩放级别的增加,图像就会越偏离(因为精度差异)。

我想知道是否有人尝试将动态地图转换为静态地图,并得出了无错误的解决方案,或者是否有更好的可行解决方案。


1
不,这不是尺寸问题。你的也有同样的问题。我尝试在南非的底部缩放(大幅缩放)。动态地图显示了一条路,但当我点击静态地图链接时,它显示了海洋。 - Boundless
1
我无法重现这个问题,因为我在南非南部的各个地方进行了缩放。请问有具体的城市/镇和街道吗?此外,您提到让用户保存图像。请注意,两个API的服务条款都禁止这样做:http://code.google.com/apis/maps/terms.html。第10.1.3节。 - andresf
我认为Brett DeWoody的代码对我来说运行良好!! - Markandey Singh
1
我的猜测,基于(不好的)经验,是你可能正在丢失纬度/经度或类似的数学问题中。验证一下你发送给静态地图API的纬度/经度是否是用户看到的那一个 - 我敢打赌你在传输过程中丢失了一些信息。 - Irongaze.com
尝试使用上面的jsfiddle解决方案来获取一个显示塞浦路斯的地图。我已经尝试了5次这个测试,静态地图与动态地图所显示的有很大偏差。还有其他人可以验证这个bug吗? - Boundless
显示剩余5条评论
2个回答

1
"...我认为这是因为动态谷歌地图API在经度和纬度上使用了比静态API更高的精度..."
据我所知,在Google Maps V3和Static Maps API中,纬度和经度的精度为小数点后6位。超过6位的精度将被忽略。这似乎是这两个文档中所提到的观点,尽管与Maps API相关的文档确实指出(我强调)。
"根据当前的缩放能力,你只需要小数点后6位的精度"
Static http://code.google.com/apis/maps/documentation/staticmaps/#Usage Regular http://code.google.com/apis/maps/articles/phpsqlajax_v3.html 没有看到您使用的代码,很难确定您问题的根本原因。

0

这个向导非常适合初学者。它允许用户构建地图,然后将所有内容(叠加层等)转换为适当的静态地图URL。

它使用了已弃用的Maps API V2。您应该使用V3 Maps API

另一个类似的向导是Styled Maps Wizard。它没有任何叠加层,但允许用户样式化地图、重新定位、指定缩放比例,然后生成Styled Maps URL。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接