2017-11-07 1 views
-1

Ich möchte alle Koordinaten der Polylinie speichern, wenn der Benutzer in einem Array auf die Karte klickt. Allerdings habe ich die Anzahl der Klicks auf nur 2 beschränkt, so dass der Benutzer nur gerade Linien mit einem Breitengrad und langen Start- und Endpunkten zeichnen wird. Dies ist
mein Code-Anfügen von Koordinaten in einem Array

var polyOptions = { 
    geodesic: true, 
    strokeOpacity: 1.0, 
    strokeWeight: 2, 
} 
var poly = new google.maps.Polyline(polyOptions); 
poly.setMap(map); 
var evtListnr = google.maps.event.addListener(map, "click", function(event) { 
    var path = poly.getPath(); 
    if (poly.getPath().getLength() == 1) { 
     google.maps.event.removeListener(evtListnr); 
    } 
    path.push(event.latLng); 
    var coordinates_poly = poly.getPath().getArray(); 
    for (var i = 0; i < coordinates_poly.length; i++) { 
     lat_poly = coordinates_poly[i].lat(); 
     lng_poly = coordinates_poly[i].lng(); 
    } 
    var str_lat_poly = JSON.stringify(lat_poly); 
    var str_lng_poly = JSON.stringify(lng_poly); 
    document.getElementById("data1").value = 'latitude:"' + str_lat_poly + '"'; 
    document.getElementById("data2").value = 'longitude:"' + str_lng_poly + '"'; 
}); 
} 

data1 und Daten2 sind zwei IDs in der Form, wobei die Koordinaten gespeichert werden.

Beim zweiten Klick ersetzt lat und long long und long des ersten Links und nur ein lat und ein langer zweiter Klick sind in data1 und data2. Ich möchte, dass die Koordinaten an den ersten Wert angehängt werden, der zweite Wert sollte nicht den ersten ersetzen. lat des ersten Klick, lat der zweiten Klick

Longitude: lng des ersten Klick, lng zweiten Klick

Wie dies erreichen Output sollte

Latitude BE-?

Antwort

0

Sie möchten lat_poly & lng_poly in ein Array machen, um alle Werte zu speichern. Im Moment erfassen Sie nur den letzten Wert, seit Sie die Zuweisung verwenden.

var lat_poly = []; 
var lng_poly = []; 
for (var i = 0; i < coordinates_poly.length; i++) { 
    lat_poly.push(coordinates_poly[i].lat()); 
    lng_poly.push(coordinates_poly[i].lng()); 
} 
+0

Danke. Es hat perfekt funktioniert. – ashes

Verwandte Themen