0

嗨,我已经修改了示例和其他网站的代码以适合自己,我需要信息窗口显示四个属性,“姓名”“地址”“电话”和“品种”。一旦我删除var type = markers[i].getAttribute("type");(这是谷歌地图示例代码中的现有属性)

并将其替换为:

var phone = markers[i].getAttribute("phone");
var breeds = markers[i].getAttribute("breeds");

地图不显示任何标记。我对javascript没有那么高,所以它可能是我缺少的一些简单的东西。该地图可在此处找到:http ://connormccarra.com/test/ 。

信息取自此 xml 文件:http ://connormccarra.com/test/phpsqlajax_genxml3.php

function load() {
    var map = new google.maps.Map(document.getElementById("map"), {
        center: new google.maps.LatLng(53.5076512854544, -7.701416015625),
        zoom: 7,
        mapTypeId: 'roadmap'
    });
    var infoWindow = new google.maps.InfoWindow;


    // Change this depending on the name of your PHP file
    downloadUrl("phpsqlajax_genxml3.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);
        }
    });
}

干杯!

4

1 回答 1

2

这看起来像问题:

      var icon = customIcons[type] || {};

您复制的代码设置为根据“类型”更改图标。如果删除该行:

      var type = markers[i].getAttribute("type");

应该有一个明确的 javascript 错误。如果您不想要自定义图标,请将该行更改为 var icon = {}; 或删除它并将您的标记更改为:

      var marker = new google.maps.Marker({
        map: map,
        position: point
      });
于 2012-08-04T17:22:30.597 回答