谷歌地图 v3 API 今天改变了吗?

Posted

技术标签:

【中文标题】谷歌地图 v3 API 今天改变了吗?【英文标题】:Google map v3 API change today? 【发布时间】:2013-12-05 14:13:47 【问题描述】:

我的地图重绘似乎失败了,因为(至少)我一直在通过

动态设置中心
var currCenter = gmap.getCenter();

然后:

var mapOptions = 
    center: new google.maps.LatLng(currCenter.ob, currCenter.pb),
    zoom: currZoom,
    mapTypeId: google.maps.MapTypeId.ROADMAP
;

今天早上出现currCenter.ob 突然变成undefined。现在看起来是 pb & qb 而不是 ob & pb。我正在尝试修复代码,是否还有其他人知道已更改的内容?

编辑:它们是我不应该使用的未记录的 API 字段,没关系,我用下面的信息修复了它。谢谢。

【问题讨论】:

Google Maps API V3 - only showing a blank map when using the geocder 的可能副本。您正在使用 API 的未记录的内部属性,这些属性可以并且确实会随着每个版本的发布而改变。 google.maps.Geocoder.geocode() geometry.location lat/lng property names change frequently的可能重复 【参考方案1】:

我假设 gmap 是一个谷歌地图对象。如果是这样的话,那么getCenter 已经返回了一个LatLng 对象,所以通过

创建一个新对象
new google.maps.LatLng()

有点没用,你可以直接使用currCenter

【讨论】:

【参考方案2】:

问题是 Api Google maps 不断改变这个值 (ob, .pb) 到纬度和经度,你必须使用 lat()lng() 函数有一个稳定的版本

var mapOptions = 
center: new google.maps.LatLng(currCenter.lat(), currCenter.lng()),
zoom: currZoom,
mapTypeId: google.maps.MapTypeId.ROADMAP

;

你好!

【讨论】:

非常感谢!我在找这个!【参考方案3】:

回答你的问题。是的。 Google Maps API 昨晚确实发生了变化。我正在做与您相同的事情(调用 .ob 和 .pb),但发现我必须在代码中分别将它们更改为 .pb 和 .qb 才能获得 Lat 和 Long。

【讨论】:

【参考方案4】:

将它们重写为 .lng() 和 .lat() 而不是 .ob、.pb、.qp。如果你还想使用非官方的成员名,我相信这些成员应该更稳定。

【讨论】:

以上是关于谷歌地图 v3 API 今天改变了吗?的主要内容,如果未能解决你的问题,请参考以下文章

html 谷歌地图api v3绘图

GWT 2.5 的最佳谷歌地图 V3 API 是啥? [关闭]

谷歌地图 API V3 方法 fitBounds()

谷歌地图 API V3 fitBounds() 不工作

如何在谷歌地图 api V3 中偏移中心点

从谷歌地图 API 的 v2 升级到 v3,建议