繁体   English   中英

Google MAP 不显示带有自定义标签的标记

[英]Google MAP not displaying markers with custom labels

我知道这是在我身上。 在之前的一个问题上,我的眼睛已经让我失望了,我只是错过了一个逗号。 谢天谢地,一个不正确的语法错误让我找到了修复方法,但现在,没有给出错误,正在创建地图,但没有放置标记。

我的 xml 文件正在正确生成,如这里xml 生成的文件所示,但是没有显示任何内容。 有人可以将此代码视为第二组眼睛吗?

<!DOCTYPE html >
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>L3 CARDS</title>
    <style>
    /* Always set the map height explicitly to define the size of the div
    * element that contains the map. */
    #map {
        height: 50%;
        width: 50%;
    }
    /* Optional: Makes the sample page fill the window. */
    html, body {
        height: 100%;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    </style>
</head>

<body>
    <div id="map"></div>

    <script>
    var customLabel = {
        1: {
            label: 'A'
        },
        2: {
            label: 'I'
        },
        3: {
            label: 'L'
        },
        4: {
            label: 'R'
        },
        5: {
            label: 'G'
        }
    };

    function initMap() {
        var map = new google.maps.Map(document.getElementById('map'), {
            center: new google.maps.LatLng(45.3791021, -122.7613788),
            zoom: 15
        });
        var infoWindow = new google.maps.InfoWindow;

        // Change this depending on the name of your PHP or XML file
        downloadUrl('maptest2.php', function(data) {
            var xml = data.responseXML;
            var markers = xml.documentElement.getElementsByTagName('marker');
            Array.prototype.forEach.call(markers, function(markerElem) {
                var id = markerElem.getAttribute('id');
                var reporttype = markerElem.getAttribute('reporttype');
                var propertyname = markerElem.getAttribute('propertyname');
                var point = new google.maps.LatLng(
                    parseFloat(markerElem.getAttribute('lat')),
                    parseFloat(markerElem.getAttribute('lng'))
                );
                var infowincontent = document.createElement('div');
                var strong = document.createElement('strong');
                strong.textContent = propertyname
                infowincontent.appendChild(strong);
                infowincontent.appendChild(document.createElement('br'));

                var text = document.createElement('text');
                text.textContent = propertyname
                infowincontent.appendChild(text);
                var icon = customLabel[reporttype] || {};
                var marker = new google.maps.Marker({
                    map: map,
                    position: point,
                    label: icon.label
                });
                marker.addListener('click', function() {
                    infoWindow.setContent(infowincontent);
                    infoWindow.open(map, marker);
                });
            });
        });
    }

    function downloadUrl(url, callback) {
        var request = window.ActiveXObject ?
        new ActiveXObject('Microsoft.XMLHTTP') :
        new XMLHttpRequest;

        request.onreadystatechange = function() {
            if (request.readyState == 4) {
                request.onreadystatechange = doNothing;
                callback(request, request.status);
            }
        };

        request.open('GET', url, true);
        request.send(null);
    }

    function doNothing() {}
    </script>
    <script async defer src="https://maps.googleapis.com/maps/api/js?key=myAPIkey&callback=initMap"></script>
</body>
</html>

提前致谢

您的纬度和经度值颠倒了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM