向 rails 地图添加多个标记

Add multiple markers to rails map

我已经在 rails Web 应用程序的 ruby 上实现了 google 地图。我可以很好地显示地图,也可以很好地放置标记。我的问题是我有 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
  });
}

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

只需删除从这 2 个函数重新创建的地图。您在 initMap() 调用上创建了一个地图并将其存储在全局变量 map 中,因此它可以在您创建标记的 getEmployee()getLocation() 中使用。