gpt4 book ai didi

javascript - Rails - 如何在 View 中访问 Google map 实例?

转载 作者:行者123 更新时间:2023-12-03 11:17:29 26 4
gpt4 key购买 nike

我有一个文件 my_app.js.coffee 并且有这样的 Google map 设置:

map = undefined
initialize = (map) ->
myOptions =
center: new google.maps.LatLng 39.729001, -94.902342
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
map = new google.maps.Map $('.map')[0], myOptions

$ ->
initialize(map)

return

然后,如果我在 View DIV 中使用 class="map",则会显示 map 。太酷了。

但有时需要设置 map 的差异中心。在各自的 View 中,我尝试了以下操作:

<script type="text/javascript"> 
map.setCenter(43.652976, -79.390409);
</script>

但它不会影响 map 的中心。尽管如此,控制台中出现以下错误消息:

Uncaught ReferenceError: map is not defined

我在这里想念什么?

提前谢谢您。

编辑:

buildMap = (callback = ->)->
console.log('xxx')
myOptions =
center: new google.maps.LatLng 39.729001, -94.902342
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
console.log('b1')
Gmaps.map = new google.maps.Map $('.map')[0], myOptions
console.log('b2')
#addMarkers(Gmaps.map)
callback()

console.log('ccc')
Gmaps =
buildMap: buildMap

window.Gmaps = Gmaps

最佳答案

map 是文件内的局部变量。

一个丑陋的修复方法是将其替换为 window.map

您应该考虑变量的范围和依赖项。这是一个很大的话题。

首先我会这样做:

Gmaps = 
buildMap: (callback = ->)->
myOptions =
center: new google.maps.LatLng 39.729001, -94.902342
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
Gmaps.map = new google.maps.Map $('.map')[0], myOptions
callback()

window.Gmaps = Gmaps

然后在您的 View 中创建 map :

Gmaps.buildMap() 

创建和更改中心:

Gmaps.buildMap(function(){
Gmaps.map.setCenter(43.652976, -79.390409);
})

关于javascript - Rails - 如何在 View 中访问 Google map 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27272506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com