2016-11-14 12 views
5

Przed upgrade ulotki 1.0 używałem metody spliceLatLngs umieścić współrzędne w obrębie obiektu polilinii jak:Ulotka 1.0 Upgrade spliceLatLngs alternatywa?

line.spliceLatLngs(index, 1, new L.LatLng(lat, lng)); 

jednak z ostatnim uaktualnieniu spliceLatLngs został refactored z powodu, jak nowe polilinie są z zagnieżdżone tablice współrzędnych.

próbowałem zrobić alternatywę tak:

var latLngs = line.getLatLngs(); 

// Because I don't need the multi-dimensional array here 
if (line instanceof L.Polygon) { 
    latLngs = latLngs[0]; 
} 

if (data) { 
    latLngs.splice(index, 1, data); 
} else { 
    latLngs.splice(index, 1); 
} 
line.redraw(); 

Ale z tą alternatywą wydaje się pozbyć spływu współrzędnych. :(

jestem po prostu brakuje czegoś oczywiste splatać współrzędnych do istniejącej polilinii?

Z góry dziękuję!

+0

Jakie dane przypisane nie rachunek inny zasadniczo gwarantują współrzędnych spływu zostanie usunięty –

+0

@TheBrofessor Jeśli zestaw danych jest null oczekuję? usuń współrzędne, ale jeśli to prawda, spodziewam się, że usunie dane z latngngs. Dane tutaj zwykle są latLng –

+0

Czy [to] (https://github.com/Leaflet/Leaflet.draw/issues/458) może być pomocne? – MarcoL

Odpowiedz

0

Można utworzyć funkcję pomocnika, który zastąpi spliceLatLngs, Oto przykład napisany w maszynopisie:

spliceLatLngs(polyline: L.Polyline, start: number, deleteCount: number, ...items: L.LatLng[]) { 
     const latlngs: L.LatLng[] = polyline.getLatLngs(); 
     latlngs.splice(start, deleteCount, ...items); 
     polyline.setLatLngs(latlngs); 
    }