Recurso de GeoJSON do folheto de atualização no local

Eu esperava que GeoJSON.addData () retornasse o subLayer recém-criado do objeto GeoJSON, mas não retorna. Por que preciso de algo assim?

(atualmente usando o Leaflet 1.0Beta2)

Estou usando o Leaflet GeoJson para mostrar dados ao vivo em um GeoJSON (ponto, linha, polígono). É uma interface CRUD (Criar, Atualizar e Excluir). Eu recebo mensagens do WebSocket com dados GeoJSON, cada um com um GUID.

Eu o caso de umCRIO Acabei de fazer um GeoJSon.AddData () na camada apropriada.

Mas para oATUALIZAR eEXCLUIR Quero um identificador para a camada que foi adicionada ao GeoJSON para que eu possa atualizar sua localização ou atualizar a Geometria. addData não está me dando esse identificador. E é realmente difícil obtê-lo em onEachFeature () ou pointToLayer ()

Atualmente, tenho um jeito que funciona, mas é feio. Eu tenho que fazer é pesquisar a camada inteira com GeoJSon.eachLayer (fn) sempre que ocorrer uma atualização ou exclusão. Parece um pouco caro.

{mesmo que o Leaflet não seja realmente projetado para essa exibição de dados em tempo real, ele está funcionando e parece triste se você não puder usá-lo para assistir a muitos dados do sensor, IoT), como estamos fazendo.

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);
        }
    });
}

questionAnswers(2)

yourAnswerToTheQuestion