如何检测一个人是否进入了谷歌地图上的某个区域
How to detect whether a person has entered a certain area in google maps
我目前正在开发一个使用html5和javascript的谷歌地图应用程序。该应用程序的要求之一是允许用户在地图上创建圆圈。在创建这些之后(我一直在使用google.maps.Circle)
这是我的圆圈代码…
var cityCircle = new google.maps.Circle({
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35,
map: map,
center: pos,
radius: 200
});
基本东西。用户按下移动设备屏幕即可定义pos
我的问题是,我如何通过走进圆圈来检测用户何时进入圆圈?我还需要检测它们是否离开了圆圈。
贾斯汀。
获取圆心与用户站立位置之间的距离。如果该距离小于半径,则用户在半径…
-
Google maps还提供了一个功能:
google.maps.geometry.spherical.computeDistanceBetween
-
为用户传递一个对象,为圆圈传递一个对象。
-
使用
cityCircle.center.lat()
和cityCircle.center.lng()
从圆心获取坐标
现在我们使用这个逻辑
var userposition = navigator.geolocation.getCurrentPosition(function(position){
return position;
})
var user = {lat : userposition.latitude , lng : userposition.longitude}
var centerOfCircle = {lat : cityCircle.center.lat() , lng : cityCircle.center.lng() }
var distanceBetween = google.maps.geometry.spherical.computeDistanceBetween(user , centerOfCircle);
if(distanceBetween <= cityCircle.radius){
alert('You are within radius of your target')
}
提示:可能需要Math.floor()来删除小数…
Google geometry lib: https://developers.google.com/maps/documentation/javascript/geometry
相关文章:
- 谷歌地图有限的区域不工作
- 如何在谷歌地图中突出显示一个州点击一个国家的任何区域
- 从谷歌地图Api中的区域名称获取坐标
- 谷歌地图设置中心到一个新点击的区域
- 谷歌地图区域中的自定义叠加层单击然后放大
- 谷歌地图区域突出显示和适当的缩放“近似”区域
- 谷歌地图按多个区域(多边形)过滤
- 如何使用php在谷歌地图中按位置显示多个区域
- 谷歌地图地理地图区域代码API
- 以特定搜索区域为中心的谷歌地图
- 在谷歌地图v3 API上绘制区域多边形
- 谷歌地图区域坐标和多边形
- 如何在谷歌地图API中应用不同颜色的重叠区域的圆
- 谷歌地图忽略占位符容器的区域
- 谷歌地图API v3折线.如何扩展鼠标覆盖区域
- 如何在谷歌地图上高亮下拉选择区域的区域
- 在谷歌地图上设置一个显示标记的区域
- 谷歌地图var城市地图区域可点击
- 谷歌地图区域多边形使用
- 缩放控件与谷歌地图区域中的自定义控件重叠