マップ上の上からXXピクセル、左からXXピクセルの位置の緯度経度を知りたいと考えています。
海外サイトも探しましたが議論している様なページしか見付けられませんでした。
var latlng = map.fromContainerPixelToLatLng(new GPoint(50, 100));
var lat = latlng.lat();
var lng = latlng.lng();
よろしくお願いします。
動作検証してないのですが、ここのやり方で取り出せると思います。
http://shahmirj.com/blog/pixel-to-latlng-google-maps-api-v
var map = new google.maps.Map( ... ); // OverlayView を作る var overlay = new google.maps.OverlayView(); overlay.draw = function() {}; // 描画の必要が無いので draw を何もしない関数にする overlay.setMap(map); // マップとひも付ける // MapCanvasProjection を取得して、fromContainerPixelToLatLng() を呼び出す var coordinates = overlay.getProjection().fromContainerPixelToLatLng( new google.maps.Point(50, 100) ); // 緯度と経度を取り出す var lat = coordinates.lat; var lng = coordinates.lng;
一応、公式リファレンスの URL を。
https://developers.google.com/maps/documentation/javascript/reference?hl=ja#OverlayView
https://developers.google.com/maps/documentation/javascript/reference?hl=ja#MapCanvasProjection
コメントで書いた stackoverflow のコードにある、OverlayView と Map の紐付けを解除するのを試してみてはどうでしょうか?
2013/11/10 21:36:48ありがとうございます。
2013/11/12 00:15:20やはり場合によって挙動がおかしくなります。
ズームした瞬間にマップを動かせなくなる、などです。
ズームを使わなければ、問題なく動いている感じです。