修改现有的Google地图元素

时间:2013-11-02 16:55:14

标签: javascript google-maps google-maps-api-3

对于我正在使用Google地图将折线添加到地图以显示路线的网站。有些路线由多条腿(阶段)组成,我正在尝试根据要求添加折线。因此,只有当用户选择显示一条腿时,它才会绘制折线。用户也可以选择完全不同的路线,并且也应该在地图上绘制这组新的折线。

我的问题是我似乎无法弄清楚或找到如何选择现有地图。我首先使用以下代码创建地图:

qMap = new google.maps.Map(document.getElementById(mP.target), mapOptions);

mP.target包含一个带有画布id的字符串,而mapOptions只是一个带有一些选项的对象,没什么特别的。

所以我使用qMap做各种事情,比如添加标记,绘制折线等等。这不仅应该在地图启动时完成,还应该在用户想要添加内容时完成。 qMap不是一个全局变量,我也不认为它是一个全局变量。

我尝试了qMap = google.maps.Map(document.getElementById(mP.target))和其他类似的方法。没有成功。我希望你可以帮我找到一个没有全局变量的方法!谢谢!

1 个答案:

答案 0 :(得分:0)

你可以尝试一些事情。

1)将代码包装在一个立即调用的函数中。这样,任何变量都包含在函数的范围内,并且不会转义以污染全局变量空间,我认为这是你主要考虑的问题。

(function () {

  var mapGlobal = new google.maps.Map(target, options);

  function thatDoesSomething(){
    // do something with mapGlobal
  }

}());

2)使用静态对象,这可能很方便用于组织代码。

var Map = {

  map: new google.maps.Map(target, options),

  thatDoesSomething: function () {
    // do something with this.map
  }

};

3)或者将它们结合起来。

(function () {

  var Map = {

    map: new google.maps.Map(target, options),

    thatDoesSomething: function () {
      // do something with this.map
    }

  };

}());