在谷歌地图API中获取标记的坐标
Getting coordinates of marker in Google Maps API
我正在使用Google Maps API。我正在使用下面的代码来获取标记的坐标。
var lat = homeMarker.getPosition().$a;
var lng = homeMarker.getPosition().ab;
我使用谷歌地图构建的应用程序一切正常。但是我今天测试了它,我在获得正确的坐标时遇到了问题。只是发现上面的代码变得未定义。在我控制台.log(homeMarker.getPosition())之后,我发现这是他们现在用于坐标的变量。
var lat = homeMarker.getPosition().ab;
var lng = homeMarker.getPosition().cb;
我不会问为什么谷歌地图会这样做,但你也可以把它包含在你的答案中。我的问题是,每次谷歌地图更改他们使用的变量时,我如何正确获取坐标而不更改我的代码。
var lat = homeMarker.getPosition().lat();
var lng = homeMarker.getPosition().lng();
请参阅 google.maps.LatLng 文档和 google.maps.Marker getPosition()
。
另一个替代选项
var map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 1,
center: new google.maps.LatLng(35.137879, -82.836914),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var myMarker = new google.maps.Marker({
position: new google.maps.LatLng(47.651968, 9.478485),
draggable: true
});
google.maps.event.addListener(myMarker, 'dragend', function (evt) {
document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>';
});
google.maps.event.addListener(myMarker, 'dragstart', function (evt) {
document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>';
});
map.setCenter(myMarker.position);
myMarker.setMap(map);
和 HTML 文件
<body>
<section>
<div id='map_canvas'></div>
<div id="current">Nothing yet...</div>
</section>
</body>
此外,您可以通过"拖动"侦听器来显示当前位置并将其写入可见或隐藏字段。您可能还需要存储缩放。这是从工作工具复制和粘贴:
function map_init() {
var lt=48.451778;
var lg=31.646305;
var myLatlng = new google.maps.LatLng(lt,lg);
var mapOptions = {
center: new google.maps.LatLng(lt,lg),
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map'),mapOptions);
var marker = new google.maps.Marker({
position:myLatlng,
map:map,
draggable:true
});
google.maps.event.addListener(
marker,
'drag',
function() {
document.getElementById('lat1').innerHTML = marker.position.lat().toFixed(6);
document.getElementById('lng1').innerHTML = marker.position.lng().toFixed(6);
document.getElementById('zoom').innerHTML = mapObject.getZoom();
// Dynamically show it somewhere if needed
$(".x").text(marker.position.lat().toFixed(6));
$(".y").text(marker.position.lng().toFixed(6));
$(".z").text(map.getZoom());
}
);
}
相关文章:
- 在谷歌地图上获取事件的x,y坐标
- 如何在JS Leatflet绘图插件中获取圆的坐标
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- HTML5获取弧的坐标's结束
- 如何在OpenLayers中获取动态绘制的多边形的坐标
- 获取用户位置并将坐标保存在数据库中
- 通过鼠标点击获取X和Y坐标(javascript)
- 使用jQuery获取用户坐标
- 当鼠标停止或改变方向时获取鼠标坐标
- 谷歌地图:获取点击或标记(x,y)像素坐标内的标记点击侦听器
- 无法获取表单's面板的x和y坐标,并在加载时从cookie中设置它们
- 获取在谷歌地图上点击的任何点的坐标
- 如何使用Google Places Javascript API搜索附近的位置(自动从浏览器获取坐标)
- 在动画运行时获取矩形的坐标
- 从 X 和 Y 坐标获取纬度和经度
- 如何将 JS 鼠标坐标获取到 PHP 插入查询中
- 谷歌地图v3从坐标获取地名/地址
- 通过坐标获取子元素
- 如何在WebGL 3d空间中从鼠标点击坐标获取对象
- 根据x和y坐标获取表's单元格的值