在一个单一的经纬度坐标周围创建一个半径来创建“到达区”.因此脚本知道车辆何时到达位置
Creating a radius around a singular lat/lon co-ordinate to create "arrival zone" so script knows when vehicle arrives at location
现在是早上7点,我已经想了几个小时了,所以如果我没有解释清楚,请原谅我,但它是这样的:
我正在研究一个项目,该项目在数据库中存储位置列表(经度/纬度),然后在gmap上填充所述位置。现在我要做的是当被GPS追踪的车辆到达指定地点时触发一个功能。问题是,由于GPS的性质,位置可能会偏离几米,可能不会触发功能。我该如何在这些地点周围创建一个半径,作为一种"误差范围"或"缓冲区",一旦履带式车辆进入,它就会触发该功能?
我通过postgres将位置和gps坐标存储为字符串,并使用js进行查询。我知道我可能忘记了一些重要的信息,你们可能会用它来帮助我,但正如我提到的,我超级累了,所以我想任何关于如何正确地问这个问题的帮助也是受欢迎的!
如果不知道谷歌地图的内部工作,我会这样做(如果你有很多目的地,它可能不会那么快…)
var location = getGpsLocation();
//fill this array with your fetched destinations
var destinations = [{lat:34.356,lng:3.456},....];
//the amount of meters within a destination that is considered "arriving"
var arrivalRadius = 10;
var arrived = false;
destinations.forEach(function(destination){
var distanceToLocation = calculateDistance(location, destination);
if(distanceToLocation - arrivalRadius <= 0){
arrived = true;
}
});
要计算两点之间的距离(lat/lng),可以使用haversine方法。
你需要在每次你的位置改变时重复这个,这就是为什么我说如果你使用很多目的地,它会花费很多时间。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 从javascript创建一个列表
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 从html创建一个指令,该指令按类名应用函数
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 创建一个循环来简化HTML和CSS代码
- 在javascript中的xml中创建一个链接
- 尝试创建一个具有z-index的堆叠菜单'使用HTML5/CSS3/JS
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 用javascript创建一个看起来正常分布的模式
- 如何创建一个方法来验证数组的范围
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 动态创建一个javascript/jquery多级数组
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 为网站表单创建一个专业的日历
- 如何创建一个具有固定左右列和水平滚动的表