【问题标题】:Changing marker properties (google maps) when all marker-objects have the same name当所有标记对象具有相同名称时更改标记属性(谷歌地图)
【发布时间】:2013-05-23 00:21:42
【问题描述】:

我的网站上有一个谷歌地图,它通过 PHP 填充了标记。我不明白如何单独识别每个标记,因为所有标记对象都具有相同的名称。

此代码取自谷歌开发者页面(https://developers.google.com/maps/articles/phpsqlajax_v3

downloadUrl("phpsqlajax_genxml.php", function(data) {
  var xml = data.responseXML;
  var markers = xml.documentElement.getElementsByTagName("marker");
  for (var i = 0; i < markers.length; i++) {
    var name = markers[i].getAttribute("name");
    var address = markers[i].getAttribute("address");
    var type = markers[i].getAttribute("type");
    var point = new google.maps.LatLng(
        parseFloat(markers[i].getAttribute("lat")),
        parseFloat(markers[i].getAttribute("lng")));
    var html = "<b>" + name + "</b> <br/>" + address;
    var icon = customIcons[type] || {};
    var marker = new google.maps.Marker({
      map: map,
      position: point,
      icon: icon.icon,
      shadow: icon.shadow
    });
    bindInfoWindow(marker, map, infoWindow, html);
  }
});

例如。如果我想让其中一个标记不可见,我通常使用marker.setVisible(false)。但是,在这种情况下,所有标记都具有相同的名称(“标记”)。

非常感谢任何帮助。

【问题讨论】:

    标签: javascript google-maps google-maps-api-3 javascript-objects


    【解决方案1】:

    您可以通过将所有标记保存在列表中来跟踪它们,例如:

    var markers = [];
    for (/* .. */) {
        /* .. */
        var marker = new google.maps.Marker({
            map: map,
            position: point,
            icon: icon.icon,
            shadow: icon.shadow
        });
        markers.push(marker);
        bindInfoWindow(marker, map, infoWindow, html);
    }
    console.log(markers); // prints a list of all markers
    

    你可以这样做:

    markers[2].setVisible(false);
    

    使位置 2 的标记不可见。

    【讨论】:

    • 行得通!谢谢。我尝试这样做,但我使用了“markers = new Array()”而不是“var markers = []”。为什么我的方法不起作用?
    • 可能是因为你没有使用var,你把它放在了一个奇怪的地方? new Array()[] 类似,但首选后者。
    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2015-03-19
    • 2022-08-18
    • 1970-01-01
    • 2014-01-06
    相关资源
    最近更新 更多