2017-09-11 2 views
-1

私は自分のコードでリスナーを使用していません。どのようにして各座標点を描画から得ることができますか?図面で座標を取得するにはどうすればよいですか?

 function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
     center: {lat: -34.397, lng: 150.644}, 
     zoom: 8 
     }); 

     var drawingManager = new google.maps.drawing.DrawingManager({ 
     drawingMode: google.maps.drawing.OverlayType.MARKER, 
     drawingControl: true, 
     drawingControlOptions: { 
      position: google.maps.ControlPosition.TOP_CENTER, 
      drawingModes: ['polygon', 'polyline'] 
     }, 

     circleOptions: { 
      fillColor: '#ffff00', 
      fillOpacity: 1, 
      strokeWeight: 5, 
      clickable: false, 
      editable: true, 
      zIndex: 1 
     } 
     }); 
     drawingManager.setMap(map); 
} 

フィドル:https://jsfiddle.net/31aey9mk/

+0

@downvoterなぜあなたは私の質問をd​​ownvoteしましたか?理由を知っているかもしれませんか? – user7397787

答えて

2

私はあなたのフィドルhereを更新しました。

基本的には、使用するタイプのgoogle.map.drawing.OverlayTypeの配列を渡す必要があります。この場合、マーカーとポリゴンを追加しました。

google.maps.event.addListener(drawingManager, 'overlaycomplete', function (event) 
{ 
    if (event.type === 'marker') console.log('Lat: ' + event.overlay.position.lat() + ', Long: ' + event.overlay.position.lng()) 
    else console.log(event.overlay.getPath().b); 
}); 

描かれたイベントおよび形状/マーカーをつかむ:

はその後、あなたは描画が完了した際に取得するためのinitMap()方法でイベントハンドラを追加する必要があります。

+0

sooy much much.Howとconsole.log(event.overlay.getPath()。b);の代わりに正確なlatとlngを得ることができます。 – user7397787

+1

まあ、poyline/polygonには複数のポイントがあります。 latlngの配列。あなたがやりたいことは、返された配列を繰り返し処理し、必要なものを格納しておくことです。 –

+0

しかし、未定義になっています – user7397787

関連する問題