2017-11-07 6 views
-1

ユーザーが地図上をクリックするたびにポリラインの座標をすべて配列に保存したい。しかし、私は、クリック数をわずか2に制限しているので、開始点と終了点の緯度と経度の直線を描くようになっています。この私のコード - ある配列に座標を追加する

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とDATA2
は座標が保存される形で2つのIDです。

2度目のクリックでは、latとlongは最初のクリックのlatとlongを置き換え、data1とdata2には2度目のクリックだけがあります。座標が最初の値に追加され、2番目の値が最初の値に置き換えられないようにする必要があります。 出力は

緯度をBE-必要があります:最初のクリックのLAT、第二のLAT

経度クリックしてください:最初のクリックのLNG、もう一度クリック

のLNGをどのようにこれを達成するために?

答えて

0

すべての値を格納する配列にlat_poly & lng_polyを設定します。今は、割り当てを使用してから最後の値をキャプチャしています。

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

ありがとうございます。それは完璧に働いた。 – ashes

関連する問題