我已经制作了一个拖放功能,使用户可以从侧边栏拖动图标,并在他们放置图标时放置一个标记。
下面的实现似乎是实现它最好(也是唯一)的方法,但当网络速度慢时会出现问题,可能是因为mouseover事件中的lat / lng不够准确。
有人能提供我另一种方式吗?也许立即放置标记,然后使用内置地图拖放呢?
下面的实现似乎是实现它最好(也是唯一)的方法,但当网络速度慢时会出现问题,可能是因为mouseover事件中的lat / lng不够准确。
有人能提供我另一种方式吗?也许立即放置标记,然后使用内置地图拖放呢?
function placeMarker(lat, lng) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
draggable: true,
map: map
});
return marker;
}
$(".icon").draggable({helper: 'clone',
start: function(e, ui) {
map.setOptions({draggable: false});
$("#map").css('cursor', 'crosshair');
},
stop: function(e,ui) {
map.setOptions({draggable: true});
$("#map").css('cursor', 'default');
google.maps.event.addListenerOnce(map, "mouseover", function(event) {
var lat = event.latLng.lat(),
lng = event.latLng.lng(),
id = ui.helper.context.id;
pointA = id === "pointA" && pointA === true
? pointA.setMap(null) : placeMarker(lat, lng);
pointB = id === "pointB" && pointB === true
? pointB.setMap(null) : placeMarker(lat, lng);
});
}
});
google.maps.Geocoder()
服务 https://developers.google.com/maps/documentation/javascript/geocoding - user1752532