Googleマップの外にアイコンを配置できるようにしたいと思います。次に、このアイコンをGoogleマップにドラッグアンドドロップして、Googleマップマーカーとして使用したいと思います。それは可能ですか?
ありがとうございました
Googleマップの外にアイコンを配置できるようにしたいと思います。次に、このアイコンをGoogleマップにドラッグアンドドロップして、Googleマップマーカーとして使用したいと思います。それは可能ですか?
ありがとうございました
受け入れられた回答には、難読化されたコードが含まれています。もう少し具体的なものを見つけるのにかなりの時間がかかったので、この答えがグーグル検索で最初に出てきたので、良いスタートのために何かを共有すると思いました.
注:window.map
マップへの参照を保存する場所です。また、クロスブラウザーの互換性のために、jquery-ui ドラッグ可能を使用しています (私のプロジェクトには既に含まれていたので、再利用しないでください)。
var pixelToLatlng = function(xcoor, ycoor)
{
var ne = window.map.getBounds().getNorthEast();
var sw = window.map.getBounds().getSouthWest();
var projection = window.map.getProjection();
var topRight = projection.fromLatLngToPoint(ne);
var bottomLeft = projection.fromLatLngToPoint(sw);
var scale = 1 << window.map.getZoom();
var newLatlng = projection.fromPointToLatLng(new google.maps.Point(xcoor / scale + bottomLeft.x, ycoor / scale + topRight.y));
return newLatlng;
};
$(".draggable").draggable(
{
helper: "clone",
appendTo: window.map.getDiv(),
cursorAt: { left: 5, top: 5 },
stop: function(event, ui)
{
var wrapper = $(window.map.getDiv());
var map_div_pos = wrapper.offset();
var map_div_border_left = parseInt(wrapper.css("border-left-width"),10);
var map_div_border_top = parseInt(wrapper.css("border-top-width"),10);
var mouse_pos = ui.helper.offset();
lat_lng = pixelToLatlng(mouse_pos.left - map_div_border_left - map_div_pos.left, mouse_pos.top - map_div_border_top - map_div_pos.top);
window.add_group_marker = new google.maps.Marker(
{
position: lat_lng,
map: window.map,
zIndex: Math.round(lat_lng.lat()*-100000)<<5
});
}
});
クレジット:
pixelToLatlng
ここで見つかりました: http://www.magicalrosebud.com/how-to-use-googlemaps-api-frompointtolatlng/
jquery-ui draggable を使用する場合の x/y の計算に関するヒント: jQuery ui draggable から位置 x と y を取得するにはどうすればよいですか?