从地图上删除多边形后,建造多边形



我能够在5秒钟通过后清除多边形,一旦将瓷砖加载到地图上,但是当我尝试再次构建多边形时,原始数据将生成多边形。我想使用新数据集。

我在做什么错?

对不起,这么多问题。我学习API很有趣。

预先感谢您。

    var map;
    function initialize() { 
        var kansas_city = new google.maps.LatLng(39.316858,-94.963194);
        var mapOptions = {
        zoom: 13,
        center: kansas_city,
        mapTypeId: google.maps.MapTypeId.TERRAIN
        };
        map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
        google.maps.event.addListener(map, 'tilesloaded', function() {
            setTimeout(function() { removeSectors() }, 3000);
            setTimeout(function() { updateMap() }, 4000);
            });     
    }
    function removeSectors() {
        if ( allPolygons ) {
            for ( i = 0; i < allPolygons.length; i++ ) {
                allPolygons[i].setMap(null);
            }
        allPolygons.length = 0;
        }
    }
    var data;
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'json_template.json', true);
    xhr.onload = function() {
        data = JSON.parse(xhr.responseText)
        sector_callback(data);
    };
    xhr.send();
    function updateMap() {
        var data;
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'json_template1.json', true);
        xhr.onload = function() {
            data = JSON.parse(xhr.responseText)
            sector_callback(data);
        };
        xhr.send();
    }
    function createClickablePoly(poly, html) {
    google.maps.event.addListener(poly, 'click', function(evt) {
        infowindow.setContent(html);
        infowindow.setPosition(evt.latLng);
        infowindow.open(map);
        });
    }
    var infowindow = new google.maps.InfoWindow({});        
    function sector_callback() {
        var bounds = new google.maps.LatLngBounds();        
        for (var i = 0, len = data.features.length; i < len; i++) {
            var coords = data.features[i].geometry.coordinates[0];
            siteNames = data.features[i].properties.Name; // added for site names
            var path = [];
        for ( var j = 0, len2 = coords.length; j < len2; j++ ){ // pull out each     set of coords and create a map object
            var pt = new google.maps.LatLng(coords[j][1], coords[j][0])
            bounds.extend(pt);
            path.push(pt);
        }
        var polygons = new google.maps.Polygon({
        path: path,
            strokeColor: "#000000",
            strokeOpacity: 0.8,
            strokeWeight: 1,
            fillColor: "#000000",
            fillOpacity: 0.35,
        map: map
        });
        createClickablePoly(polygons, siteNames);
        //console.debug(siteNames);
        google.maps.event.addListener(polygons, 'mouseover', function() {
        var currentPolygon = this;
        currentPolygon.setOptions({ 
            fillOpacity: 0.45,
            fillColor: "#FF0000"
            })
        });
        google.maps.event.addListener(polygons, 'mouseout', function() {
        var currentPolygon = this;
        currentPolygon.setOptions({ 
            fillOpacity: 0.35,
            fillColor: "#000000"
            })
        });
        allPolygons.push(polygons);
        }

    }
    var allPolygons = [];

将瓷砖事件移至初始化函数中。当它坐着时,您将添加与多边形一样多的听众,他们都将尝试清除/更新地图。

相关内容

  • 没有找到相关文章

最新更新