gpt4 book ai didi

geolocation - 使用 GPS 检查用户是否在路线检查点附近

转载 作者:行者123 更新时间:2023-12-04 20:19:13 26 4
gpt4 key购买 nike

情况如下:

我有一个用户将运行的预定 GPS 路线。路线有一些检查点,用户应该在所有检查点附近通过(将它们视为赛车游戏检查点,防止用户走捷径)。我需要确保用户通过所有检查点。
我想确定一个将被视为检查点半径内的区域,但我不希望它只是一个径向区域,它应该是一个考虑到路径形式的区域。
没看懂?我也没有。看看这个画得不好的图像可以更好地理解它:
Route example

黑线代表预定路径,蓝色球是检查点,蓝色多边形是通缉区域。绿线是更精确的用户,红线是不太准确的用户(可能是醉酒驾驶?哈哈)。两条线都应该在多边形内,但完全跳过路线的用户不应该。

我已经在这里的某个地方看到了一个函数来检查用户是否在这样的多边形内,但我需要知道如何计算多边形。

有什么建议么?

编辑:

我正在考虑使用简单的 distanceTo() 函数来绘制一个假想的圆圈并检查用户是否在那里。这很好,因为它的实现和理解非常简单,而且不好,因为要确保最错误的用户通过检查点,我需要一个大的半径,使正确的用户比预期更快地进入检查点区域。

只是为了让你们更好地了解情况,这是针对应该用于交通(汽车或公共(public)汽车)的应用程序,检查站应该是划分路线的地标或地点,例如,交通堵塞开始的地方或停止。

最佳答案

假设您知道检查点的地理位置,您可以只检查两者之间的距离。

使用 distanceTo功能并设置一个阈值,即用户需要从检查点继续进行多少米。

编辑

既然你想避免距离到,这里有一个小函数我写了一段时间来检查一个点是否在多边形中:

public boolean PIP(Point point, List<Point> polygon){
boolean nodepolarity=false;
int sides = polygon.size();
int j = sides -1;
for(int i=0;i<sides;i++){
if((polygon.get(i).y<point.y && polygon.get(j).y>=point.y) ||(polygon.get(j).y<point.y && polygon.get(i).y>=point.y)){
if (polygon.get(i).x+(point.y-polygon.get(i).y)/(polygon.get(j).y-polygon.get(i).y)*(polygon.get(j).x-polygon.get(i).x)<point.x) {
nodepolarity=!nodepolarity;
}
}
j=i;
}
return nodepolarity; //FALSE=OUTSIDE, TRUE=INSIDE
}
List<Point> polygon是构成多边形的点的列表。

这使用 Ray casting algorithm来确定一条光线穿过多边形的交叉点数。

您需要做的就是在您需要的区域周围创建“边界”,并使用 toPixels 将 GeoPoints 转换为像素。方法。

将这些点存储到点列表<> 中,您应该已准备就绪。

关于geolocation - 使用 GPS 检查用户是否在路线检查点附近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8564428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com