如何使用谷歌地图数据层和geoJson文件在地图上显示文本(而非图标)?

时间:2018-10-12 18:14:01

标签: google-maps-api-3

我可以使用Google地图数据层和geoJson文件显示标记/图标。但是,可以显示文字(在地图上的特定位置)而不是图标吗? 它不应该是InfoWindow的一部分。我正在寻找类似Sample

的东西

我尝试使用“标题”,但这只是鼠标悬停在图标上方的标签。请帮忙。

gmap.addListener('zoom_changed', function () {
    var gmapZoom = gmap.GetZoom();
    if (gmapZoom >= 0 && gmapZoom <= 21)
    {
        if (bJSONLoaded === false)
        {
            var setDataStyle = function (feature) {
                var status = feature.getProperty('status');
                switch (status) {
                    case "Active":
                        return {
                            icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png',
                            title: 'test 1'
                        };
                    case "Pending":
                        return {
                            icon: 'http://maps.google.com/mapfiles/ms/icons/orange-dot.png'
                        };
                }
            };

            pendingJSON.loadGeoJson('http://url/GoogleTestPending.json');
            pendingJSON.setStyle(setDataStyle);
            pendingJSON.setMap(gmap);
            activeJSON.loadGeoJson('http://url/GoogleTestActive.json');
            activeJSON.setStyle(setDataStyle);
            activeJSON.setMap(gmap);

            bJSONLoaded = true;
        }
        else
        {
            if (!testJSON.getMap()) {
                console.log('setting map');
                pendingJSON.setMap(gmap);
                activeJSON.setMap(gmap);
                testJSON.setMap(gmap);
            }
        }
    }
    else
    {
        if (bJSONLoaded === true && testJSON.getMap() != null)
        {
            //remove pins
            pendingJSON.setMap(null);
            activeJSON.setMap(null);
            testJSON.setMap(null);
        }
    }
});

1 个答案:

答案 0 :(得分:0)

使用OverlayView解决了该问题。

customEntity.prototype =新的google.maps.OverlayView();

然后实现必需的功能,例如draw,onAdd,onRemove等。