2015-11-26 47 views
1

後,我用下面的代碼添加一些指向一個地圖,他們看起來棒極了。我還添加了一些沒有問題的json多邊形。刪除自定義GeoJSON的標記(裝有傳單)變焦

當達到一定的縮放級別,我想點和多邊形關閉。使用map.removeLayer(名稱的多邊形)關閉多邊形完美,然後縮小我使用map.addLayer(多邊形的名稱),他們回來(使用'zoomend'和if語句)。

點狀多邊形做功能還沒有反應過來的removeLayer功能。我也試過harvestPoints.setOpacity(0),它也不起作用。我應該使用什麼代碼將這些GeoJSON的標記「開」和「關」之類的多邊形功能?

function onEachPoint(feature, layer) {    
    layer.bindPopup(feature.properties.MGNT_AREA.toString()); 
    layer.on('click', function (e) { layer.openPopup(); }); 
    layer.bindLabel(feature.properties.MGNT_AREA.toString(), { 
     noHide: true, 
     className: "my-label", 
     offset: [-2, -25] 
    }).addTo(map); 
}; 

var areaIcon = { 
    icon: L.icon({ 
     iconUrl: 'labels/MonitoringIcon.png', 
     iconAnchor: [20, 24] 
    }) 
}; 

var harvestPoints = new L.GeoJSON.AJAX('labels/dfo_areas_point.json', { 
    onEachFeature: onEachPoint, 
    pointToLayer: function (feature, latlng) { 
     return L.marker(latlng, areaIcon); 
    } 
}); 

回答

1

不知道到底是什麼的根本原因您的問題,因爲我們都在思念你引用你究竟怎麼了點(標記)當您嘗試從地圖上刪除。

通常情況下,應該有面和點(標記)來實現你所描述的(除去地圖在某些縮放級別的圖層,並將它們添加回在其他變焦)沒有什麼區別。

請注意setOpacity is a method for L.Markers,而您將它應用於您的geoJson圖層組harvestPoints

什麼可能發生是你(在你的onEachPoint函數最後一條指令)個別點(標記)添加到您的地圖,而是試圖從地圖中刪除圖層組harvestPoints。因爲它似乎永遠不會添加到地圖中,所以沒有任何反應。

如果你想在同一時間你harvestPoints層組中打開/關閉所有的點,那麼只需在添加/從地圖上刪除該層組/,而不是添加單個標記:

var harvestPoints = L.geoJson.ajax('labels/dfo_areas_point.json', { 
    onEachFeature: onEachPoint, 
    pointToLayer: function (feature, latlng) { 
           // make sure `areaIcon` is an OPTIONS objects 
     return L.marker(latlng, areaIcon); 
    } 
}).addTo(map); // Adding the entire geoJson layer to the map. 

map.on("zoomend", function() { 
    var newMapZoom = map.getZoom(); 

    if (newMapZoom >= 13) { 
     map.addLayer(harvestPoints); 
    } else { 
     // Removing entire geoJson layer that contains the points. 
     map.removeLayer(harvestPoints); 
    } 
}); 

邊注:彈出窗口上點擊默認打開的,你不應該需要在點擊監聽器添加的是什麼?

演示:http://jsfiddle.net/ve2huzxw/62/

+0

這是因爲添加.addTo(地圖)到以GeoJSON層的端部一樣簡單。非常感謝。我希望這可以幫助別人。 – user5543624