Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/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
Javascript 我需要获取关于动态谷歌地图的数据,并使用API V3从中创建静态谷歌地图_Javascript_Google Maps_Google Maps Api 3_Google Static Maps - Fatal编程技术网

Javascript 我需要获取关于动态谷歌地图的数据,并使用API V3从中创建静态谷歌地图

Javascript 我需要获取关于动态谷歌地图的数据,并使用API V3从中创建静态谷歌地图,javascript,google-maps,google-maps-api-3,google-static-maps,Javascript,Google Maps,Google Maps Api 3,Google Static Maps,我真正想做的是允许用户使用谷歌地图创建地图并保存图像。我尝试了通过使用GoogleMapsAPIv3和静态地图api来解决这个问题 用户可以使用动态谷歌地图滚动、缩放等,并找到自己喜欢的地图。然后,用户应该按下一个按钮,从谷歌地图(中心、缩放级别等)提取数据,然后将查询发送到静态谷歌地图api。静态GoogleMapAPI将返回可以保存的图像 我所有这些都能用,只是它不总是能用。有时,静态谷歌地图返回的图像将完全是用户在动态地图中看到的图像。其他时候,图像可能会偏离几米(我认为这是因为动态谷歌地

我真正想做的是允许用户使用谷歌地图创建地图并保存图像。我尝试了通过使用GoogleMapsAPIv3和静态地图api来解决这个问题

用户可以使用动态谷歌地图滚动、缩放等,并找到自己喜欢的地图。然后,用户应该按下一个按钮,从谷歌地图(中心、缩放级别等)提取数据,然后将查询发送到静态谷歌地图api。静态GoogleMapAPI将返回可以保存的图像

我所有这些都能用,只是它不总是能用。有时,静态谷歌地图返回的图像将完全是用户在动态地图中看到的图像。其他时候,图像可能会偏离几米(我认为这是因为动态谷歌地图api比静态api使用更高的经度和纬度精度),甚至数千公里(我不知道为什么会发生这种情况)。缩放级别越大,图像通常处于关闭状态(由于精度差异)

我想知道是否有人尝试过将动态地图转换为静态地图,并提出了一个无缺陷的解决方案,或者是否有更好的解决方案可以工作。

这是一个非常好的开始。它允许用户构建地图,然后将所有内容(覆盖图等)转换为合适的静态地图URL

不过,它使用的是不推荐使用的MapsAPIv2。您将希望使用

另一个执行类似操作的向导是。它没有任何覆盖,但允许用户设置地图样式、重新居中、指定缩放,然后生成样式化的地图URL

“…我相信这是因为动态谷歌地图api使用了更大的 经度和纬度的精度高于静态api…”

谷歌地图V3和静态地图api纬度和经度中的AFAIK都有精确到小数点后6位的精度。超过小数点后6位的精度将被忽略。这似乎是这两个文档中提出的观点,尽管与mapsapi相关的文档中确实指出了这一点(我的重点)

“使用谷歌地图当前的缩放功能,您只需 小数点后需要6位精度”

静止的

正规的


如果看不到您正在使用的代码,很难说问题的根源是什么。

我创建了一个小JSFIDLE来测试一下。您可以在此处查看-移动地图,放大/缩小,更改地图类型,然后单击左下角的“获取静态地图”按钮。这将用完全相同的静态图像地图取代谷歌地图。到目前为止,它似乎总是显示相同的视图。您能找到一些不显示相同视图的特定案例吗?是否可能您请求的静态地图太大?静态地图API的免费版本的最大值为640x640像素。如果你要求的尺寸比这个大,我想它会裁剪你的地图。不,这不是尺寸问题。你的也有同样的问题。我试着放大南非的底部(放大很多)。动态地图显示了一条路,当我点击静态地图链接时,它显示了海洋。我无法再现这个问题,在南非南部的各个地方缩放。是否有特定的城市/城镇和街道?此外,您还提到让用户保存图像。请注意,这两个API的服务条款都禁止以下情况:。第10.1.3节。根据(糟糕的)经验,我猜测你可能正在放弃你的lat/long或类似数学问题的符号。验证您发送到静态映射API的lat/long是否是用户看到的-我敢打赌,您正在丢失一些信息。