2012-08-06 58 views
3

我有一个页面,其中包含建筑物的卫星视图和对齐的平面图覆盖图。有些图片需要与建筑物内的特定位置相关联,因此我想拖动图片,将其放在地图上,并将位置数据用于其他任务。在Google地图上启用拖放的准确标记位置

我有这个概念在

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 
    }); 
} 

我想有精度工作。尽管确实可以放置一个位置并将其拖到正确的位置,但在第一个位置准确定位会非常有帮助

回答

1

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

相关问题