マップのクリック ハンドラーを登録します。
// Capture map click event.
google.maps.event.addListener(YourMap 'click', $.proxy(this.mapClickHandler, this));
関数では、イベント オブジェクトを取得します。これから、マウス クリックの緯度と経度を取得できます。マーカーがある場合は、それらの値を使用してマップ上の位置を設定できます。
mapClickHandler = function (event)
{
var position = new google.maps.LatLng(event.latLng.lat(), event.latLng.lng())
// Main Marker. Or in your case a google maps dialogue.
this.marker.setPosition(position);
}
x、y画面座標が必要になるかもしれないと思いました。それについてはよくわかりませんが、イベントオブジェクトのプロパティとしても利用できる可能性がありますが、それらをできるだけ使用することは避けました。
画面位置座標の取得に役立つ getProjection() の使用例を見つけました。ただし、私の例は、googles OverlayView の拡張に依存していました。マップ自体から投影を取得する方法があるかどうかはわかりません。それを調べる必要があります。
MyOverlay.prototype = new google.maps.OverlayView();
var overlayProjection = this.getProjection();
var point = overlayProjection.fromLatLngToDivPixel(event.latLng);
point.x;
point.y;