遍历地图标记

时间:2018-12-18 20:40:19

标签: javascript google-maps-api-3

我想在选择的特定城市放置标记,但是我需要在for循环中进行标记,手动执行此过程非常耗时,并且代码看起来很丑陋。任何正确使用for循环的技巧?我在这里做什么错了?

var izmir = {lat: 38.4237, lng: 27.1428};
  var amsterdam = {lat: 52.3680, lng: 4.9036};
  function initMap() {
    var map = new google.maps.Map(document.getElementById('map'), {zoom: 4,
      center: izmir});
      var map = new google.maps.Map(document.getElementById('map'), {zoom: 4,
        center: amsterdam});
        var i;
        for(i=0;i.length;i++)
        {
           nokta = new google.maps.Marker({position: izmir,amsterdam, map: map});
        }
    }

编辑:我想我已经部​​分实现了我想要的,唯一的问题是标记仅由最后一个条目使用,在本例中为布拉格。如果我将其更改为另一个城市(例如阿姆斯特丹),则地图将以阿姆斯特丹为中心,并且标记仅由阿姆斯特丹使用。如何在所有标记上使用标记?

 var sehirler = {
    'izmir': {lat: 38.4237, lng: 27.1428},
    'amsterdam': {lat: 52.3680, lng: 4.9036},
    'prague': {lat: 50.0755, lng: 14.4378}};
function initMap() {

  for (var sehir in sehirler)
  {
    var map = new google.maps.Map(document.getElementById('map'),
    {zoom: 4, center: sehirler[sehir]});
      var marker = new google.maps.Marker({position: sehirler[sehir], map: map});
  }
} 

1 个答案:

答案 0 :(得分:1)

根据下面的讨论进行编辑

这是您要找的吗?

// initialize object containing all cities
var sehirler = {
    izmir: { lat: 38.4237, lng: 27.1428 },
    amsterdam: { lat: 52.368, lng: 4.9036 },
    prague: { lat: 50.0755, lng: 14.4378 }
};

function initMap() {
    // initialize main map
    var center = sehirler.CITY // <-- edit CITY to be the correct city
    var map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: center });

    // iterate throughout cities to put all markers on same map
    for (var sehir in sehirler) {
        var marker = new google.maps.Marker({ position: sehirler[sehir], map: map });
    }
}