2017-06-14 1 views
-1

Activer la modification de couches se noyer à l'aide GeoJSONActiver la modification des données GeoJSON

var drawnItems = new L.FeatureGroup(); 
map.addLayer(drawnItems); 

données Json

$.getJSON("js/draw/neighborhoods.json",function(hoodData){ 
    alert("this is editableLayers"); 
    var i = 0; 
    var geojsonlayer = L.geoJson(hoodData, 
    { 
      onEachFeature: function (feature, layer) { 
       alert(feature.properties.prop0); 
       var myLayer = layer; 
      drawnItems.addLayer(myLayer); 

      } 
    }); 
    map.addLayer(drawnItems); 
    }); 

Ajouter le contrôle

//draw control 
    var drawControl = new L.Control.Draw({ 
     draw: false, 
     edit: { 
      featureGroup: drawnItems, 
      remove: false, 
      edit: true 
     } 
    }); 

    map.addControl(drawControl); 
    map.on('draw:edited', function (e) { 
    var layers = e.layers; 
    layers.eachLayer(function (layer) { 
     console.log(layer) 
    }); 
}); 

En utilisant ce code je suis en mesure de tirer les couches, mais incapable de l'éditer. J'utilise leaflet.draw lib.

+0

même ceci est une question en double, mais nous avons besoin de solution .. – Pavan

+0

Voir https://stackoverflow.com/questions/34738805/update-properties-of-geojson-to-use-it-with-leaflet/34740632#34740632 – ghybs

+0

hey ghybs Merci, mais j'ai résolu mon problème. – Pavan

Répondre

0

Si vous pouvez configurer un JSFiddle avec des exemples de données, je peux examiner de plus près le processus que vous avez configuré.

Idéalement, les données de geojson seraient disponibles avant d'ajouter au contrôle et d'ajouter à la carte. Comme c'est asynchrone, vous devriez avoir le contrôle et la couche ajoutée à la carte après chaque mise à jour de votre fermeture ajax/getJSON. Un peu comme nettoyer l'espace de travail chaque fois que vous avez de nouvelles données à éditer.