【问题标题】:Google Maps API v3: Adding markers from an array doesn't workGoogle Maps API v3:从数组中添加标记不起作用
【发布时间】:2013-01-13 22:23:24
【问题描述】:

首先感谢您考虑回答这个问题:) 非常感谢!

我使用以下代码创建了一张地图,效果很好。

    function initialize() {

          var mapOptions = {
          zoom: 5,
          center: new google.maps.LatLng(48.160, -6.832),
          disableDefaultUI: true,
          mapTypeId: google.maps.MapTypeId.ROADMAP
          };

           map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
  setMarkers(map, cities);
 }

但是我想在这个数组中的每个城市都有标记(请不要建议更改它,因为这段确切的代码解决了我遇到的另一个问题,除非当然绝对必要):

 var cities = {
   'Groningen':  [ 53.216723950863425, 6.560211181640625, 7],
    'San Francisco': [ 34.01131647557699, -118.25599389648437, 5],
    'New York City': [ 40.7143528, -74.0059731, 3]

 };     

我正在使用这段代码来放置实际的标记(这是不起作用的部分):

  function setMarkers(map, locations) {
   // Add markers to the map

  for (var i = 0; i < cities.length; i++) {
          var data = cities [i]
          var marker = new google.maps.Marker({
              position: new google.maps.LatLng (data[0], data[1]),
              map: map,
              icon: image,
              title: 'test',
          });
      }
 }

【问题讨论】:

    标签: javascript api google-maps


    【解决方案1】:

    cities 不是数组而是对象,所以不能使用

    for (var i = 0; i < cities.length; i++) {
        //...
    }
    

    改用这个

    for (var key in cities) {
        var data = cities[key];
        var marker = new google.maps.Marker({
            position: new google.maps.LatLng (data[0], data[1]),
            map: map,
            icon: image,
            title: 'test',
        });
    }
    

    【讨论】:

    • 非常感谢您的回答!不幸的是,它仍然没有放置标记。你可以在websu.it/devnw/dev/contact.html看到整个地图,经纬度应该是荷兰的一个地方,它没有显示出来:(关于我做错了什么有什么想法吗?
    • 哈哈一直看着那个控制台;刚才我忘了。谢谢。对不起哈哈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    相关资源
    最近更新 更多