2016-11-14 8 views
5

पत्रक 1.0 मैं spliceLatLngs विधि का उपयोग किया गया था की तरह एक पॉलीलाइन वस्तु के भीतर निर्देशांक जगह का एक उन्नत करने से पहले:पत्रक 1.0 spliceLatLngs वैकल्पिक अपग्रेड करें?

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

हाल उन्नयन के साथ हालांकि, spliceLatLngs बाहर क्योंकि कैसे नए पोलीलाइंस के साथ हैं की पुनर्संशोधित किया गया निर्देशांक के घोंसला वाले सरणी।

मैं बहुत की तरह एक वैकल्पिक करने के लिए प्रयास किया:

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

लेकिन इस विकल्प के साथ यह अनुगामी समन्वय से छुटकारा पाने के लिए लगता है। :(

हूँ मैं सिर्फ ब्याह करने के लिए एक मौजूदा पोलीलाइन में एक समन्वय कुछ स्पष्ट याद आ रही?

अग्रिम धन्यवाद!

+0

क्या डेटा को सौंपा गया है और कुछ बयान अनिवार्य रूप से पीछे समन्वय हटा दिया जाता है की गारंटी नहीं है –

+0

@TheBrofessor तो डेटा सेट रिक्त है मैं करने की उम्मीद? समन्वय को हटा दें, लेकिन यदि यह सच है तो मैं latLngs से डेटा को हटाने की अपेक्षा करता हूं। यहां डेटा आमतौर पर latLng –

+0

हो सकता है [यह] (https://github.com/Leaflet/Leaflet.draw/issues/458) उपयोगी हो सकता है? – MarcoL

उत्तर

0

आप एक सहायक समारोह है कि spliceLatLngs, यहाँ का स्थान ले लेगा बना सकते हैं एक उदाहरण लिखा है ? टाइपप्रति में:

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); 
    } 
संबंधित मुद्दे