マップのdiv内の固定ピクセル位置にマーカーを配置する必要があります。マーカーをインスタンス化するには、LatLngが必要です。 fromDivPixelToLatLng()はピクセル座標をLatLngに変換する方法ですが、一貫して動作するようにはできません。Google Maps API V3 fromDivPixelToLatLngに一貫性がありません
http://www.pinksy.co.uk/newsquare/overlaytest.htmlに問題の簡単な例を掲載しました。地図をクリックして、マーカーを200px/200pxに配置します。地図をドラッグしてもう一度クリックします。私は毎回200px/200pxにマーカーを置くことを期待していましたが、そうではありません。
まず私が600PX 300ピクセルによってdivの中に、いつものようにマップを設定します。
var london = new google.maps.LatLng(51.501904,-0.130463);
var mapOptions = {
zoom: 15,
center: london,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
その後、私はオーバーレイを作成します。
var overlay = new google.maps.OverlayView();
overlay.draw = function() {};
overlay.setMap(map);
fromDivPixelToLatLngを(テストするために)、私は、クリックを作成しますマップ上のイベントで、ピクセル位置200px/200pxにマーカーを配置しようとします。しかし、周辺の地図をドラッグ
google.maps.event.addListener(map, 'click', function(event) {
var pixelLatLng = overlay.getProjection().fromDivPixelToLatLng(new google.maps.Point(200,200));
var marker = new google.maps.Marker({
position: pixelLatLng,
map: map
});
});
、あなたは/マーカーが常に200pxのに配置されていないことがわかります:関係なく、あなたが地図をドラッグところの、私は常に200pxの/ 200pxのに配置するマーカーを期待していました200px何か案は?
ありがとうございます!
に下で良好な説明があります: https://groups.google.com/forum/#!topic/google-maps-api/L2UJJp10VRw – kaskader