bot*_*bot 10 javascript google-maps geolocation
我试图将谷歌地图上的鼠标位置转换为LatLng对象.我看到很多关于通过谷歌地图"点击"事件等获得该位置的帖子,如下所示:
google.maps.event.addListener(map, 'click', function(event) {
mouseLocation = event.latLng;
});
Run Code Online (Sandbox Code Playgroud)
但是,这对我的目的不起作用,因为我没有响应地图事件,我正在响应'tapHold'事件.在tapHold事件中,我想获得当前鼠标位置的纬度和经度.实际上我可以看到这样的函数在很多方面都有用,而不仅仅是tapHold事件.
我可以想到一些黑客,比如,在飞行中创建一个鼠标悬停事件,然后只让它触发一次并在从rollover事件中获取LatLng对象后将其删除,但是,对我来说似乎有些蠢... ...寻找更多优雅的解决方 谢谢!
bic*_*cle 16
google.maps.event.addListener(map, 'mousemove', function (event) {
displayCoordinates(event.latLng);
});
function displayCoordinates(pnt) {
var lat = pnt.lat();
lat = lat.toFixed(4);
var lng = pnt.lng();
lng = lng.toFixed(4);
console.log("Latitude: " + lat + " Longitude: " + lng);
}
Run Code Online (Sandbox Code Playgroud)
资料来源:http://seydahatipoglu.wordpress.com/2012/10/21/how-to-display-cursor-coordinates-in-google-map-javascript/
Nil*_*ils 14
有几种处理像素的功能,要使用它们,首先需要访问投影.
来自地图对象
map.getProjection().fromPointToLatLng(new google.maps.Point(x, y))
Run Code Online (Sandbox Code Playgroud)
从叠加对象:
overlay.getProjection().fromContainerPixelToLatLng(new google.maps.Point(x, y));
Run Code Online (Sandbox Code Playgroud)
您也可以使用虚拟叠加层执行此操作:
var overlay = new google.maps.OverlayView();
overlay.draw = function() {};
overlay.setMap(map);
Run Code Online (Sandbox Code Playgroud)
以下是对文档的引用:https://developers.google.com/maps/documentation/javascript/reference#Projection