javascript - 如何向谷歌地图添加多个标记?

标签 javascript ruby-on-rails google-maps geocoding

我在 Rails 应用程序中使用了带有一个标记的谷歌地图:

<script>
  function initMap(lat, lng) {
    var myCoords = new google.maps.LatLng(lat, lng);
    var mapOptions = {
    center: myCoords,
    zoom: 14
    };
    var map = new google.maps.Map(document.getElementById('map'), mapOptions);

    var marker = new google.maps.Marker({
    position: myCoords,
    map: map
});
}
</script>
<script>
    $('#map').prepend(initMap(<%= @location.latitude %>, <%= @location.longitude %>));
</script>

但是如何将多个标记传输到 map 上?

我尝试过,但它不起作用:

<% @locations.each do |location| %>
   <script>
     $('#map').prepend(initMap(<%= location.latitude %>, <%= location.longitude %>));
   </script>
<% end %>

然后我创建一个数组:

array = []
  @locations.each do |location|
  array.push([location.latitude, location.longitude])
  end 

看起来像这样:

[[50.0874654, 14.4212535], [49.4447888, 32.0587805], [49.42105565, 32.1004058189433]]

并尝试传递给js:

   <script>
     $('#map').prepend(initMap(<%= array %>));
   </script>

但它也不起作用。

最佳答案

您需要添加一个重载函数 initMap,它接受如下所示的数组:

<script>
  function initMap(lat, lng) {
    var myCoords = new google.maps.LatLng(lat, lng);
    var mapOptions = {
    center: myCoords,
    zoom: 14
    };
    var map = new google.maps.Map(document.getElementById('map'), mapOptions);

    var marker = new google.maps.Marker({
    position: myCoords,
    map: map
});
}

function initMap(locationArr) {
      for (var i = 0; i < locationArr.length; i++) {
        var myCoords = new google.maps.LatLng(locationArr[i][0], locationArr[i][1]);
        var mapOptions = {
          center: myCoords,
          zoom: 14
        };
        var map = new google.maps.Map(document.getElementById('map'), mapOptions);

        var marker = new google.maps.Marker({
          position: myCoords,
          map: map
        });
      }

    }
</script>

关于javascript - 如何向谷歌地图添加多个标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60385452/

相关文章:

javascript - 将事件处理程序绑定(bind)到由 jQuery .html() 函数插入的元素上

ruby-on-rails - ActionMailer 的机架空间 smtp

ruby-on-rails - 如何在 Rails 应用程序中有选择地跟踪方法及其文件访问?

ruby-on-rails - 单例方法与类方法

javascript - 谷歌地图标记事件 'dragend' 问题

mysql - 如何在 Yii 中使用 MySQL DB 进行 EGmap 扩展

jquery - 如何使用谷歌地图隐藏 div

javascript - jQuery Div 在每次追加后向下滚动

javascript - 在 JavaScript 中使用闭包实现构建器

javascript - 向另一台服务器发出 AJAX 请求