编辑现有的谷歌地图元素

Edit existing Google Maps element

本文关键字:谷歌地图 元素 编辑      更新时间:2023-09-26

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

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

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) 将代码包装在立即调用的函数中。这样,任何变量都包含在函数的范围内,并且不会逃逸以污染全局变量空间,我想这是您主要关注的问题。

(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
    }
  };
}());