小编use*_*996的帖子

有效存储和查询GPS坐标

我想创建一个GPS坐标的大型数据库,可以通过说"返回[此坐标]的'n'米内的所有坐标"来查询.

我需要它尽可能高效,因此循环遍历数据库中的所有坐标并计算坐标是否在'n'米内并不是一个理想的解决方案.

有更简单的解决方案吗?

谢谢

database gps coordinates

9
推荐指数
2
解决办法
1万
查看次数

计算给定轴承和距离的坐标

我在这里实现这里描述的功能时遇到问题.

这是我的Java实现:

private static double[] pointRadialDistance(double lat1, double lon1, 
        double radianBearing, double radialDistance) {
     double lat = Math.asin(Math.sin(lat1)*Math.cos(radialDistance)+Math.cos(lat1)
             *Math.sin(radialDistance)*Math.cos(radianBearing));
     double lon;
     if(Math.cos(lat) == 0) {  // Endpoint a pole
        lon=lon1;      
     }
     else {
        lon = ((lon1-Math.asin(Math.sin(radianBearing)*Math.sin(radialDistance)/Math.cos(lat))
                +Math.PI) % (2*Math.PI)) - Math.PI;
     }
    return (new double[]{lat, lon});
}
Run Code Online (Sandbox Code Playgroud)

我将度数轴承转换为弧度,并在调用函数之前将距离(km)转换为弧度距离 - 这不是问题所在.

但是,当我输入坐标时:lat = 49.25705; lon = -123.140259; 轴承225(西南),距离1km

我得到了这个:lat:-1.0085434360125864 lon:-3.7595299668539504

它显然不正确,谁能看到我做错了什么?

谢谢

algorithm gps coordinates bearing

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

coordinates ×2

gps ×2

algorithm ×1

bearing ×1

database ×1