向用户显示坐标并触发事件
Show users coordinates and trigger event
我正在使用谷歌地图实用程序库V3中的地理位置标记脚本来显示用户的位置。
我想要实现的(我是谷歌地图API的新手!)是:
-
显示用户的当前坐标(例如,在页面上某处的简单CSS容器中)
-
将事件连接到标记。当用户关闭时,我应该被触发。
感谢您的帮助!
要向用户显示坐标,您需要对 DOM 元素的引用。然后是更新内容的简单问题。
页面上的网页
<div id="UserCoordinates">Waiting on GPS Position ...</div>
在脚本中
google.maps.event.addListener(GeoMarker, 'position_changed', function() {
var UserPosition = this.getPosition();
var DisplayElement = document.getElementById('UserCoordinates');
if(UserPosition === null) {
DisplayElement.innerHTML = 'Waiting on GPS Position...';
} else {
DisplayElement.innerHTML =
'Current Position: ' + UserPosition.toUrlValue();
}
});
这将在用户更改时向用户显示其当前位置。如果要继续使用全屏地图,则可能需要将UserCoordinates
div 实现为地图控件。API 参考对此有一个很好的概述和多个示例。
当用户距离某个位置 X 米以内时显示信息窗口
这有点棘手,因为有多种场景需要处理,并且您不希望信息窗口在您的半径内移动时反复打开。
距离计算
我看到您的代码中有一个距离函数,但我建议使用 API 的球形几何库中的函数。您只需要使用 api 脚本标签专门加载库:
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=true_or_false">
</script>
然后,您需要添加到position_changed
事件处理程序:
var IsWithinRadius = false; //assume they start outside of the circle
var RadiusInMeters = 1000; //within 1 km
var LocationOfInterest = map.getCenter();
google.maps.event.addListener(GeoMarker, 'position_changed', function() {
var UserPosition = this.getPosition();
var DisplayElement = document.getElementById('UserCoordinates');
if(UserPosition === null) {
DisplayElement.innerHTML = 'Waiting on GPS Position...';
IsWithinRadius = false; //you don't know where they are
} else {
DisplayElement.innerHTML =
'Current Position: ' + UserPosition.toUrlValue();
var IsCurrentPositionInRadius =
Math.abs(google.maps.geometry.spherical.computeDistanceBetween(
UserPosition, LocationOfInterest)) <= RadiusInMeters;
var JustEnteredRadius = !IsWithinRadius && IsCurrentPositionInRadius;
IsWithinRadius = IsCurrentPositionInRadius;
if(JustEnteredRadius) {
//trigger action here.
alert("Within raidus");
}
}
});
相关文章:
- 在谷歌地图上获取事件的x,y坐标
- 查找带有边框的HTML5 Canvas(点击)事件的坐标
- 高图表散点图:点击事件时的警报坐标
- 画布使事件在鼠标悬停在特定坐标上时激活
- 向用户显示坐标并触发事件
- IE8 事件坐标
- Javascript鼠标坐标没有事件
- 是否可以将 onclick 事件附加到文档中的特定坐标
- 如何从 X°Y′Z“ 格式(不是 X.Y == 十进制)的点击事件中获取坐标
- 无法获取轮子事件的鼠标坐标
- 触摸事件初始坐标
- 可以't在Android设备上的Javascript中获取触摸事件的坐标
- 使用Javascript鼠标事件返回HTML5画布上鼠标点击的坐标
- 在mousemove事件javascript中获取光标坐标
- JavaScript点击画布坐标中绘制图像上的事件
- 鼠标单击事件- Firefox上的鼠标坐标
- 轴-平行坐标上的重新排序事件
- 用javascript处理画布的OnClick事件并获取其坐标
- 如何在下降事件Javascript/Jquery中获取鼠标坐标
- 谷歌地图API绘图多边形 - 叠加完成事件仅返回一组坐标