我不确定正确的行话,所以如有必要,请随时编辑这篇文章的标题。
基本上,我正在创建一个 Google map 对象并添加一堆叠加层、标记等。这就是我创建 map 的方式:
map = new google.maps.Map(document.getElementById("map"), mapOptions)
但是,在侧面导航时,我可能会到达 map DOM 元素被销毁的 url,但 map 对象仍然存在于我的 Web 应用程序中。当我返回显示 map 的 url 时,我想将 map 重新附加到 DOM 元素,而不是重新创建 map 。
有什么办法吗?
编辑:
更具体地说,我在 map 上有一堆标记和叠加层
Map =
map: null
markers:[]
icons: {}
init: ->
mapOptions =
center: new google.maps.LatLng(34.0500, -118.2500)
zoom: 9
@map = new google.maps.Map(document.getElementById("map"), mapOptions)
@icons.default =
path: google.maps.SymbolPath.CIRCLE
strokeColor: '#DD0000'
fillColor: '#DD0000'
fillOpacity: 0.6
scale:8
strokeWeight: 2
addMarker: (post) ->
gLatLng = new google.maps.LatLng post.location.lat, post.location.lng
gMarker = new google.maps.Marker
position: gLatLng
map: @map
icon: @icons.default
animation: google.maps.Animation.DROP
marker =
post: post
gMarker: gMarker
@markers.push marker
我想我可以创建一个新 map 并将所有标记附加到新 map 上,但这似乎没有必要,因为我可能在 map 上有许多其他叠加层
最佳答案
在创建 Map
对象后,不可能将 Map
对象附加到另一个 DOM 元素。正如您在 Google Maps Javascript API v3 Reference 中看到的那样Map
上只有一个 getDiv()
方法可用,没有 setDiv()
。
我认为您可以保留 Marker
和 MapOptions
等其他对象来重新创建 Map
,但是 Map
如果没有相应的 DOM 元素,对象本身是无用的。
关于javascript - 如何将谷歌地图对象重新附加到 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25214206/