0

我已经在我的 ruby​​ on rails web 应用程序上实现了谷歌地图。我可以很好地显示地图,也可以很好地放置标记。我的问题是我有 2 个 JavaScript 函数可以刷新地图并在地图上放置一个标记。我希望能够保留当前地图,并使用我的功能向地图添加另一个标记。如何阻止我的地图刷新以显示超过 1 个标记?

// application.js

var map;

function initMap() {
  var lat=29.732585;
  var lng=-95.462830;

  map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: 29.7604, lng: -95.3698},
      zoom: 10.25,
  });
  var marker = new google.maps.Marker({
      position: {lat:29.732585,lng:-95.462830},
      map: map
  });
}

function getEmployee() {
  map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: 29.7604, lng: -95.3698},
      zoom: 10.25,
  });
  var marker = new google.maps.Marker({
      position: {lat:29.7154,lng:-95.3893},
      map: map
  });
}

function getLocation() {
  map = new google.maps.Map(document.getElementById('map'), {
      center: {lat: 29.7604, lng: -95.3698},
      zoom: 10.25,
  });
  var marker = new google.maps.Marker({
      position: {lat:29.7560,lng:-95.3573},
      map: map
  });
}
4

1 回答 1

2

调用getEmployee()getLocation()重新创建地图时,通过调用new google.maps.Map. 这就是为什么您的地图在每次调用时都会刷新。

只需从这两个函数中删除重新创建的地图即可。您可以随时创建地图initMap()并将其存储在全局变量map中,以便可以在您创建标记的位置getEmployee()和位置使用它。getLocation()

于 2018-11-02T02:54:16.310 回答