๋ชจ๋ ํ์ฑ ๋ ์ด์ด๋ฅผ ์ง์ฐ๊ฑฐ๋ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ํน์ ๋ ์ด์ด๋ฅผ ํต๊ณผํ์ง ์๊ณ ํ์ฑ ๋ ์ด์ด๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ๋ ๊ธฐ๋ฅ์ด ์์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ป๊ฒ ์๊ฐํ๋์?
์ด ๋ชฉ์ ์ ์ํด 2๊ฐ์ง ์ฃผ์ ๊ธฐ๋ฅ์ ์ฐพ์์ต๋๋ค.
map.removeLayer(๋ง์ปค);
Markers.clearLayers();
ํ์ง๋ง ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค... ์ค์ ๋ก๋ ํ ๋ฒ๋ง ์๋ํ๋ฏ๋ก ๋ง์ปค์ ํ ๋ ์ด์ด๋ง ์ ๊ฑฐํ๊ฑฐ๋ ๋ด๊ฐ ๋ญ๊ฐ ์๋ชปํ๊ณ ์๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
var map = new L.Map('์ง๋');
ํจ์ getMarker(){
var ํํธ๋งต = "";
if(๋ง์ปค) {
map.removeLayer(Membersx);
map.removeLayer(map._layers);
}
$.ajax({
์ ํ: "๊ฒ์๋ฌผ",
URL: "app_lib->FOLDER['admin'].$this->router->class ?>/buscador",
๋ฐ์ดํฐ ์ ํ: "json",
๋ฐ์ดํฐ: {๊ณ์ธต:=$json_encode(๊ณ์ธต);?>}
์ฑ๊ณต: ํจ์(๊ฒฐ๊ณผ){
$.each(๊ฒฐ๊ณผ, ํจ์(์ธ๋ฑ์ค, ๋ ์ด์ด) {
var ๋ง์ปค = L.geoJson(layer.data,{
pointToLayer: ๊ธฐ๋ฅ(๊ธฐ๋ฅ, ์๋) {
if(feature.geometry.type == 'ํฌ์ธํธ'){
return L.marker(latlng, {icon: L.ExtraMarkers.icon({ icon: feature.marker_icon, markerColor: feature.marker_color, ๋ชจ์: feature.marker_type, ์ ๋์ฌ: 'fa' }) })
}
},
oneEachFeature: ํ๋์EachFeature
});
map.addLayer(๋ง์ปค);
});
}
์ด ๋ฌธ์ ์ ๋ํด ์ ๋ฅผ ๋์์ฃผ์๊ฒ ์ต๋๊น...?
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ง๋์์ ๋ ์ด์ด๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ๋ค๋ฅธ ๊ทธ๋ฃนํ๋ ๋ ์ด์ด์์ ์ ๊ฑฐ/์ง์ฐ๊ธฐ์ ์ถฉ๋ถํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. L.Map
์๋ eachLayer
ํจ์์ ํจ๊ป ์ ์๋ํ๋ removeLayer
๋ฉ์๋๊ฐ ์์ต๋๋ค.
map.eachLayer(function (layer) {
map.removeLayer(layer);
});
http://leafletjs.com/reference.html#map -eachlayer
http://leafletjs.com/reference.html#map -removelayer
ํด๋น ๊ธฐ๋ฅ์ด ๋ง์ด ํ์ํ ๊ฒฝ์ฐ L.Map
์ฝ๊ฒ ํฌํจํ ์ ์์ต๋๋ค.
L.Map.include({
'clearLayers': function () {
this.eachLayer(function (layer) {
this.removeLayer(layer);
}, this);
}
});
์ด๊ฒ์ด L.Map
ํฌํจ๋์ง ์์ ์ด์ (์ฌ๊ธฐ์ ์ถ์ธกํ๊ณ ์์)๋ ๊ทธ๊ฒ์ ํ์๋ก ํ๋ ์ฌ๋์ด ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋๋ถ๋ถ์ ๊ตฌํ์์๋ L.LayerGroup
, L.FeatureGroup
๋๋ L.GeoJSON
์ ๊ฐ์ ๊ทธ๋ฃนํ๋ ๋ ์ด์ด ์ ํ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ด์ด ์ปฌ๋ ์
์ ๋ง๋ญ๋๋ค. ์ด๋ฌํ ๋ ์ด์ด์๋ clearLayers
๋ฉ์๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
http://leafletjs.com/reference.html#layergroup -clearlayers
ํ์ํ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์ด๋ฏธ ๊ฑฐ๊ธฐ์ ์์ผ๋ฏ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ตฌํ์ ๋ฌธ์ ๊ฐ ์๊ฑฐ๋ ๋์์ด ํ์ํ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ์ถ์ ๊ธฐ์ ๊ฒ์ํ๋ ๊ฒ์ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด ์๋๋๋ค. Leaflet์ Google ๊ทธ๋ฃน ๊ณผ ๊ฐ์ ์ ์ ํ ์ฑ๋์ ์ฌ์ฉํ๊ฑฐ๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ Stackoverflow์ ์ง๋ฌธ์ ๊ฒ์ํ๋ฉด ํผ๋๋ฐฑ์ ๋ฐ๊ณ ํจ์ฌ ๋ ๋นจ๋ฆฌ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค.
^^ :+1:
๋ง์ปค ๋ ์ด์ด๋ฅผ ๊ธฐ์ตํ๊ณ ์ ๊ฑฐํ ์๋ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ง๋์์ ๋ ์ด์ด๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ๋ค๋ฅธ ๊ทธ๋ฃนํ๋ ๋ ์ด์ด์์ ์ ๊ฑฐ/์ง์ฐ๊ธฐ์ ์ถฉ๋ถํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
L.Map
์๋eachLayer
ํจ์์ ํจ๊ป ์ ์๋ํ๋removeLayer
๋ฉ์๋๊ฐ ์์ต๋๋ค.http://leafletjs.com/reference.html#map -eachlayer
http://leafletjs.com/reference.html#map -removelayer
ํด๋น ๊ธฐ๋ฅ์ด ๋ง์ด ํ์ํ ๊ฒฝ์ฐ
L.Map
์ฝ๊ฒ ํฌํจํ ์ ์์ต๋๋ค.์ด๊ฒ์ด
L.Map
ํฌํจ๋์ง ์์ ์ด์ (์ฌ๊ธฐ์ ์ถ์ธกํ๊ณ ์์)๋ ๊ทธ๊ฒ์ ํ์๋ก ํ๋ ์ฌ๋์ด ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ถ๋ถ์ ๊ตฌํ์์๋L.LayerGroup
,L.FeatureGroup
๋๋L.GeoJSON
์ ๊ฐ์ ๊ทธ๋ฃนํ๋ ๋ ์ด์ด ์ ํ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ด์ด ์ปฌ๋ ์ ์ ๋ง๋ญ๋๋ค. ์ด๋ฌํ ๋ ์ด์ด์๋clearLayers
๋ฉ์๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.http://leafletjs.com/reference.html#layergroup -clearlayers
ํ์ํ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์ด๋ฏธ ๊ฑฐ๊ธฐ์ ์์ผ๋ฏ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ตฌํ์ ๋ฌธ์ ๊ฐ ์๊ฑฐ๋ ๋์์ด ํ์ํ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ์ถ์ ๊ธฐ์ ๊ฒ์ํ๋ ๊ฒ์ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด ์๋๋๋ค. Leaflet์ Google ๊ทธ๋ฃน ๊ณผ ๊ฐ์ ์ ์ ํ ์ฑ๋์ ์ฌ์ฉํ๊ฑฐ๋ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ Stackoverflow์ ์ง๋ฌธ์ ๊ฒ์ํ๋ฉด ํผ๋๋ฐฑ์ ๋ฐ๊ณ ํจ์ฌ ๋ ๋นจ๋ฆฌ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค.