en el lugar de actualización de la característica de folleto GeoJSON

Esperaba que GeoJSON.addData () devolviera el subLayer recién creado del objeto GeoJSON, pero no lo hace. ¿Por qué necesito algo como esto?

(actualmente usando el folleto 1.0Beta2)

Estoy usando el folleto GeoJson para mostrar datos en vivo en un GeoJSON (punto, línea, polígono). Es una interfaz CRUD (Crear, Actualizar y Eliminar). Recibo mensajes de WebSocket con datos de GeoJSON, cada uno con un GUID.

Yo el caso de unCREAR Acabo de hacer un GeoJSon.AddData () a la capa adecuada.

Pero para elACTUALIZAR yELIMINAR Quiero un identificador para la capa que se agregó a GeoJSON para poder actualizar su ubicación o actualizar la Geometría. addData no me está dando este identificador. Y es realmente difícil obtenerlo de onEachFeature () o de pointToLayer ()

Actualmente, tengo una forma que funciona pero fea. Lo que tengo que hacer es buscar en toda la capa con GeoJSon.eachLayer (fn) cada vez que ocurre una actualización o eliminación. Parece un poco caro.

{incluso si Leaflet no está realmente diseñado para esta visualización de datos en vivo t / t, está funcionando, y parece triste si no puede usarlo para ver una gran cantidad de datos del sensor, IoT) como lo estamos haciendo.

this.delete = function (layerName, feature) {
    if (!(layerName in self.myLayers)) {
        alert("live.display: Missing Layer: " + layerName);
        return;
    }
    var layerInfo = Live.myLayers[layerName];
    var base = layerInfo.layer;
    var id = feature.properties.objectID;
    this.find(layerName, id, function (layer) {
        this.removeLayer(layer);
        Tools.debug(16, "live.delete:", "killed object: " + id);
    });
}
this.find = function (layerName, id, action) {
    var base = Live.myLayers[layerName].layer;
    base.eachLayer(function (feature) {
        if (!("objectID" in feature.feature.properties)) { return; }
        var objectID = feature.feature.properties.objectID;
        if (objectID == id) {
            action.call(base, feature);
        }
    });
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta