Как я могу обновить широту, долготу и свойства одной точки, не стирая и не создавая заново все точки - PullRequest
0 голосов
/ 06 мая 2020

Я использую Angular 7:

@ asymmetrik / ngx-leaflet ":" ^ 5.0.2 "с" leaflet ":" ^ 1.5.1 "

У меня есть одна проблема: я хочу обновить juste one specifici c положение точки и его свойства, не стирая все точки.

Например: у меня есть один файл geo JSON:

[
    {
        "attribution": "AT_101000",
        "recordid": "101000",
        "type": "Feature",
        "geometry":{
            "coordinates": [5.4933266666667, 43.471425],
            "type": "Point"
        },
        "properties":{
            "label": "BT 9999844",
            "latitude": 43.471425,
            "longitude": 5.4933266666667
        }
    }, 
    {
        "attribution": "AT_101010",
        "recordid": "101010",
        "type": "Feature",
        "geometry":{
            "coordinates": [5.4933266666669, 43.471325],
            "type": "Point"
        },
        "properties":{
            "label": "BT 456852",
            "latitude": 43.471425,
            "longitude": 5.4933266666669
        }
    },
    {
        "attribution": "AT_104010",
        "recordid": "104010",
        "type": "Feature",
        "geometry":{
            "coordinates": [5.49339, 43.48],
            "type": "Point"
        },
        "properties":{
            "label": "BT 456852",
            "latitude": 43.48,
            "longitude": 5.49339
        }
    }
]

I есть функция:

createLayersLeaflet(){
    let self = this;
    return leaflet.geoJSON(geoJSONFile,{
      pointToLayer: function(feature, latlng) {
        let iconUrl = ("assets/img/dashboard-icons/map/do.png");
        var smallIcon = leaflet.icon({
            iconUrl: iconUrl,
            iconSize:     [33, 44], 
            iconAnchor:   [16, 44], 
            popupAnchor:  [0, -44]
          });
          return leaflet.marker(latlng, {icon: smallIcon,attribution: feature.recordid});
        },
      onEachFeature: function (feature,layer){
        var html = '';
            html += '<b>' + feature.properties.label + '</b>';

        layer.bindPopup(html);
      }
    });
  }

И я добавляю слои в:

self.createfeaturesForLayersLeaflet().addTo(self.map); // self.map is my leaflet.Map

У меня 2 вопроса:

  1. как я могу изменить метку свойства 'в объекте geo JSON «AT_104010» без обновления sh всех других объектов?
  2. как я могу изменить положение широты и долготы в объекте geo JSON «AT_101010», не выполняя ссылка sh на все остальные объекты?

Спасибо за вашу помощь.

...