Javascript - 确定用户当前位置是否在谷歌地图的 KML 层中

Javascript - Determine if user current location within KML layer of google maps

本文关键字:是否 谷歌地图 层中 KML 位置 用户 Javascript      更新时间:2023-09-26

我正在尝试检查 KML 图层内的用户位置/谷歌标记。

是否有任何 KML 事件来确定这一点?或者我可以检查在谷歌地图上放置的标记后?

知道吗?

我的示例代码在这里。有什么建议或示例代码吗?等待您的善意回应。提前谢谢。

    var map;
    function initialize() {
        var chicago = new google.maps.LatLng(49.051078, -122.314221);
        var mapOptions = {
            zoom: 11,
            center: chicago
        }
        map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
        var ctaLayer = new google.maps.KmlLayer({
            url: 'http://aeronnovation.ae/NoFlyZoneFile/doc.kml',
            preserveViewport: true

        });
        ctaLayer.setMap(map);
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function (position) {
                var pos = new google.maps.LatLng(position.coords.latitude,
                                                 position.coords.longitude);
                var infowindow = new google.maps.InfoWindow({
                    map: map,
                    position: pos,
                    content: 'You are here'
                });
                map.setCenter(pos);
            }, function () {
                handleNoGeolocation(true);
            });
        } else {
            // Browser doesn't support Geolocation
            handleNoGeolocation(false);
        }
    }
    function handleNoGeolocation(errorFlag) {
        if (errorFlag) {
            var content = 'Error: The Geolocation service failed.';
        } else {
            var content = 'Error: Your browser doesn''t support geolocation.';
        }
        var options = {
            map: map,
            position: new google.maps.LatLng(60, 105),
            content: content
        };
        var infowindow = new google.maps.InfoWindow(options);
        map.setCenter(options.position);
    }
    google.maps.event.addDomListener(window, 'load', initialize);

KmlLayer 不允许访问基础多边形数据。 您可以使用 FusionTables(如果您导入 KML 数据)或第三方 KML 解析器(如 geoxml3 或 geoxml-v3)来完成此操作。

  • 使用 Geoxml3 的示例
  • 使用融合表的示例

  • 通过代理对数据使用 GeoXML3 的示例