jquery - 在 Google map 上启用拖放的准确标记位置

标签 jquery google-maps-api-3

我有一个页面,其中包含建筑物的卫星 View 和对齐的平面图叠加层。有些图像需要与建筑物内的特定位置相关联,因此我想拖动图像,将其放在 map 上并将位置数据用于其他任务。

我有这个想法

http://130.111.148.131/JMCTour/admin/setCoordinates.php?floor=1, 

但是标记的准确性还有很多不足之处。如果您前往该站点并放置一个标记,您会发现位置差异很大。无论使用什么,都是如此

point = (pageX, pageY),
point = (screenX, screenY),
location = overlay.getProjection().fromDivPixelToLatLng(point),
location = overlay.getProjection().fromcontainerPixelToLatLng(point)

我的代码是

//draggable handler of each photo
$(".photo").draggable({
  helper: "clone",
  cursor: "move",
  containment: $("#photosGallery") ? $("#container") : "document"

});

//droppable handler of the map div
$("#map").droppable({
  drop: function(e){
    var point = new google.maps.Point(e.pageX, e.pageY);
    var data = {
      "location": overlay.getProjection().fromDivPixelToLatLng(point)
    };

    placeMarker(data);
  }
});

//create a new marker overlay at point
function placeMarker(location){
  var marker = new google.maps.Marker({
    position: location.location,
    map: map,
    zIndex: 1000,
    draggable: true
  });
}

我希望保持准确性。虽然我确实可以放置一个位置并将其拖动到正确的位置,但在第一次放置时获得准确的位置将非常有帮助

最佳答案

我有一个old V2 demo here ,这可能对您有帮助。当您放下标记时,它会获取精确的纬度/经度,精度为 6 位小数。 您的代码的问题在于 e.pageX, e.pageY 与整个页面相关,而不仅仅是与包含 map 的 div 相关。

关于jquery - 在 Google map 上启用拖放的准确标记位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11831419/

相关文章:

angular - 尝试在页面上呈现 Google map 时出错

jquery - CSS3 转换(转换)在 Firefox 中不起作用,但在 Chrome 和 Safari 中起作用

javascript - jQuery 在鼠标悬停时(完全)展开和(部分)折叠 div

javascript - jQuery 下拉菜单显示/隐藏 div

google-maps-api-3 - 谷歌地图 v3 更改信息窗口的大小

google-maps - 通过 Google Maps API 使用路线(方向服务)和使用折线有什么区别?

javascript - 如何在javascript中查找内存泄漏

jQuery 将 NOT 放入选择器的正确位置

javascript - 使用 URL 中的 JSON 数据来显示 Google map 标记 - 怎么做?

javascript - 融合层中可以拥有的不同标记数量是否有限制?