谷歌地图 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 今天改变了吗?的主要内容,如果未能解决你的问题,请参考以下文章