Saya mencoba menampilkan beberapa data ke formulir dari bentuk selebaran, tetapi itu menunjukkan saya sangat aneh, dan saya tidak menginginkan ini. Bagaimana saya bisa menghapus hal LatLng itu? Kode:`

map.on(L.Draw.Event.CREATED, function (e) {
    map.addLayer(e.layer);
    var points = e.layer.getLatLngs();
  puncte1= points.join(",");
$('#geo').val(puncte1);
});

` Inilah yang saya lihat di input itu: LatLng(44.93294, 26.00524),LatLng(44.92395, 26.05433),LatLng(44.94351, 26.05776), dan saya hanya ingin melihat: 44.93294, 26.0524, 44.92395, 26.05433; Singkatnya, hanya koordinat. bagaimana saya bisa melakukan ini? Saya menggunakan Leaflet Draw dan Database MYSQL

1
Robinson Chera 18 Agustus 2017, 12:27

2 jawaban

Jawaban Terbaik

Anda dapat menghapus bagian yang tidak dibutuhkan dari string dengan regex karena dokumen API tampaknya tidak mencerminkan kenyataan:

points.join(',').match(/([\d\.]+)/g).join(',')
0
Jared Smith 18 Agustus 2017, 11:53

Saya melihat Leaflet docs for LatLng dan sepertinya LatLng (objek dalam objek points´´ array) yang Anda dapatkan kembali memiliki properti lat dan lgn yang dapat Anda gunakan untuk mendapatkan nilai secara langsung.

Jika demikian, Anda dapat melakukan sesuatu seperti

puncte1 = points
  .map(pos => pos.lat + ',' + pos.lng) // get only the relevant part for you
  .join(',');

Sunting: Rupanya hasil getLatLngs berbeda tergantung pada bentuk apa yang Anda gambar. Di atas berfungsi untuk menggambar garis. Untuk poligon Anda mendapatkan kembali array array. Jadi, Anda harus menggunakan points[0].map sebagai gantinya.

1
jonahe 18 Agustus 2017, 11:22