使用Jquery选择现有的Google Map Element

时间:2016-02-11 10:55:49

标签: javascript google-maps yii

在我的网站页面中,我有一个(由2 amigos/yii-google-map-library插件自动生成)google map init脚本。

(function(){
function initialize(){
  var mapOptions = {"center":new google.maps.LatLng(43.8998984000,12.8599824000),"zoom":14};
  var container = document.getElementById('gmap0-map-canvas');
  container.style.width = '512px';
  container.style.height = '512px';
  var gmap0 = new google.maps.Map(container, mapOptions);
  };
  google.maps.event.addDomListener(window, 'load', initialize);
})();

使用jquery我有一个添加标记的功能(在某个事件上触发)

 function(e) { 
         var lat = e.params.data.coords.lat;
         var lng = e.params.data.coords.lng;
         var coords = new google.maps.LatLng(lat, lng);
         var marker = new google.maps.Marker({
               position: coords,
               title: 'Test',
               map: gmap0
         });
         gmap0.setCenter(marker.getPosition());

}

脚本按此顺序启动,因此首先声明var gmap0。但如果去执行代码,则会返回此错误:

  

ReferenceError:未定义gmap0

我能做什么?

1 个答案:

答案 0 :(得分:3)

你必须在初始化函数之外声明你的var,这样var对另一个函数

是可见的
<script>
var gmap0 ;
 (function(){
 function initialize(){
  ....
  gmap0 = new google.maps.Map(container, mapOptions);
  .....
     google.maps.event.addDomListener(window, 'load', initialize);
  })();

</script>