1

Google マップjquery google mapsを使用しています。私がやろうとしているのは、ユーザーに地図上の位置をクリックしてから、クリックした地図上のポイントに基づいて地理位置情報を取得することです。

次のスニペットを試します。

$('#mapCanvas').gmap('click', function(overlay, latlng){
  if (latlng) {
    alert("here");
    marker = new GMarker(latlng, {draggable:true});
    var latlng = marker.getLatLng();
    var lat = latlng.lat();
    var lng = latlng.lng();
    //send these lat and lng to server side save location method through ajax
    console.log(latlng);
  }
  map.addOverlay(marker);
}); 

しかし、これは機能しません。誰かが何が悪いのか教えてもらえますか? フィドルはここにあります。

ありがとう!

4

1 に答える 1

2

イベントをキャプチャするために、google.maps.event.addListener通常使用されます。たとえば、ユーザーがマップをクリックしたときにキャプチャするには、次のようにします。

google.maps.event.addListener(map, 'click', function(event) {
  alert(event.latLng);
});

clickイベントは、プロパティを持つをgoogle.maps.Mapトリガーします。これにより、ユーザーがマップ上のどこをクリックしたかがわかります。同様に、同じように動作し、クリックされたマーカーがマップ上のどこにあるかを示します。MouseEventlatLnggoogle.maps.Marker

これら2つを組み合わせることで、地図をクリックしてマーカーを追加し、マーカーをクリックしてその位置を取得できるアプリケーションを作成できます。

google.maps.event.addListener(map, 'click', function(event) {

  // add a marker where the mouse clicked
  var marker = new google.maps.Marker({
    position: event.latLng,
    map: map
  });

  // when the marker is clicked, alert its location
  google.maps.event.addListener(marker, 'click', function(event) {
    alert('This marker is at: ' + event.latLng);
  });

});

実例: http: //jsfiddle.net/aLEjR/1/


ちなみに、のインスタンスがすでにある場合google.maps.Marker(たとえば、そのマーカーを自分で作成した場合)、getPosition()メソッドを呼び出すことでその位置を取得できます。そのメソッドと他の多くのAPIドキュメントをここで読むことができます:

開発者ガイドを読むことで、GoogleMapsAPIの使用方法についていつでも詳しく知ることができます。

于 2013-01-14T10:49:10.397 に答える