Javascript 将jquery.position()转换为google地图
我有一个有点有趣的问题,我很难弄明白。我正在从地图外部实现一个可拖动的div,并希望将其拖动到地图上。我已经到了触发事件和抓取下落位置的地步,但现在我需要将其转化为地图能够理解的东西 有没有一种方法可以将.position()返回的值转换为谷歌地图可以理解的latlng或point?我一直在搞乱地图投影,但似乎无法使其相对于地图上的视口工作。任何方向正确的点都会很棒Javascript 将jquery.position()转换为google地图,javascript,jquery,google-maps,jquery-plugins,Javascript,Jquery,Google Maps,Jquery Plugins,我有一个有点有趣的问题,我很难弄明白。我正在从地图外部实现一个可拖动的div,并希望将其拖动到地图上。我已经到了触发事件和抓取下落位置的地步,但现在我需要将其转化为地图能够理解的东西 有没有一种方法可以将.position()返回的值转换为谷歌地图可以理解的latlng或point?我一直在搞乱地图投影,但似乎无法使其相对于地图上的视口工作。任何方向正确的点都会很棒 $('#map').droppable({ drop: function(e, ui) {
$('#map').droppable({
drop: function(e, ui) {
console.log(e);
console.log(ui);
var rawMouseLocation = $('#map').mapPlugin('mouseLocation', ui.position);
mouseLocation = rawMouseLocation.toString().replace(/[()]/g,'')
var field = $(ui.draggable[0]).data('fieldID');
var iconPath = $(ui.draggable[0]).find('img').attr('src');
$('.'+field).val(mouseLocation).removeClass('default-text');
var layerName = $('#map').mapPlugin('addNewFieldLayer',field, rawMouseLocation, {
"iconPath":iconPath,
'onDragEnd':self.updateField
});
newLayers.push(layerName);
$(ui.draggable).draggable( 'disable' );
}
});
在“鼠标定位”函数中,我需要一种将该位置转换为地图坐标的方法。我甚至不确定这是否可行,但如果有任何帮助,我将不胜感激。谢谢。我想出了一个使用地图覆盖视图的解决方案
// bunch of stuff to get an overlay set up to convert a pixel location to a lat/long
MyOverlay.prototype = new google.maps.OverlayView();
MyOverlay.prototype.onAdd = function() { }
MyOverlay.prototype.onRemove = function() { }
MyOverlay.prototype.draw = function() { }
function MyOverlay(map) { this.setMap(map); }
overlay = new MyOverlay(aMap);
google.maps.event.addListener(aMap, 'idle', function() {
// Get projection
projection = overlay.getProjection();
})
然后在我的鼠标定位函数中,我执行以下操作:
// need to convert mouse location into a lat/long point
var point = new google.maps.Point(eventPosition.pageX, eventPosition.pageY);
var latlng= projection.fromContainerPixelToLatLng(point);
return latlng;
其中包含鼠标位置的板条!谢谢@Vesliq看看这个,这就是你想要的吗?我能利用你的建议想出一个办法。我会写一篇简短的介绍。