问题描述
一系列经纬度是人员的位置信息。轨迹长度:从sql中取出一系列经纬度,计算该轨迹的总长度;运动半径:最小可以将所有GPS点包围起来的圆的半径,也可以认为所有GPS点中最远的两个点的距离的一半。注:不一定是起始点和终点请问各位有什么好的解决办法。或者可以借助第三方的库。
解决方案
解决方案二:
轨迹长度:可简单可复杂,简单的就是算两点间直线距离,这个你查查就找到了。复杂的要借助google,百度,高德等地图api来计算。运动半径:这个相对简单,你只要找到经度最大最小值,维度最大最小值,可以得到一个矩形,这个矩形中两跟对角线中最长的那根就是圆的直径,交叉点就是圆心。
解决方案三:
解决方案四:
引用1楼xdashewan的回复:
轨迹长度:可简单可复杂,简单的就是算两点间直线距离,这个你查查就找到了。复杂的要借助google,百度,高德等地图api来计算。运动半径:这个相对简单,你只要找到经度最大最小值,维度最大最小值,可以得到一个矩形,这个矩形中两跟对角线中最长的那根就是圆的直径,交叉点就是圆心。
这种方法数据量大的话怕是非常慢啊。我想最简单的能调用第三方的成熟的库
解决方案五:
引用3楼jinianjun的回复:
这种方法数据量大的话怕是非常慢啊。我想最简单的能调用第三方的成熟的库
你一次要计算多少条数据,都是基本的数学计算,快慢完全取决于cpu的运算速度,而且你这种特殊要求貌似没有什么第三方公布这种类库
解决方案六:
引用4楼xdashewan的回复:
Quote: 引用3楼jinianjun的回复:
这种方法数据量大的话怕是非常慢啊。我想最简单的能调用第三方的成熟的库你一次要计算多少条数据,都是基本的数学计算,快慢完全取决于cpu的运算速度,而且你这种特殊要求貌似没有什么第三方公布这种类库
终端没五分钟上传一次数据,一天工作时间八小时。服务器查询时候一次就要处理这么多的数据
解决方案七:
引用5楼jinianjun的回复:
终端没五分钟上传一次数据,一天工作时间八小时。服务器查询时候一次就要处理这么多的数据
还是没说清楚数量,一次可以只上传一条,也可以是一万条。数据多做预统计,最后做汇总
解决方案八:
引用1楼xdashewan的回复:
轨迹长度:可简单可复杂,简单的就是算两点间直线距离,这个你查查就找到了。复杂的要借助google,百度,高德等地图api来计算。运动半径:这个相对简单,你只要找到经度最大最小值,维度最大最小值,可以得到一个矩形,这个矩形中两跟对角线中最长的那根就是圆的直径,交叉点就是圆心。
嗯,原理明白。取得最大最小经纬度做到了。两点之间的交点的经纬度怎么取得呢?不知您有何办法
解决方案九:
引用2楼wangnaisheng的回复:这位仁兄,既然回复了,请认真一点好不好
解决方案十:
引用8楼jinianjun的回复:
Quote: 引用2楼wangnaisheng的回复:这位仁兄,既然回复了,请认真一点好不好
你要是借鉴不到,就无视好了。我也是给寻求帮助的人一点参考而已,仅此而已。
解决方案十一:
引用1楼xdashewan的回复:
轨迹长度:可简单可复杂,简单的就是算两点间直线距离,这个你查查就找到了。复杂的要借助google,百度,高德等地图api来计算。运动半径:这个相对简单,你只要找到经度最大最小值,维度最大最小值,可以得到一个矩形,这个矩形中两跟对角线中最长的那根就是圆的直径,交叉点就是圆心。
这位大哥,运动轨迹半径,两对角线交点的经纬度如何求取,期望答复,急求
解决方案十二:
引用10楼jinianjun的回复:
这位大哥,运动轨迹半径,两对角线交点的经纬度如何求取,期望答复,急求
两对角线交点的经纬度不就是那个矩形长和宽的两个中心点嘛
解决方案十三:
引用11楼xdashewan的回复:
Quote: 引用10楼jinianjun的回复:
这位大哥,运动轨迹半径,两对角线交点的经纬度如何求取,期望答复,急求两对角线交点的经纬度不就是那个矩形长和宽的两个中心点嘛
这个矩形可不是规则的矩形啊,怎么会是“长和宽的两个中心点”呢
解决方案十四:
引用12楼jinianjun的回复:
这个矩形可不是规则的矩形啊,怎么会是“长和宽的两个中心点”呢
都说是矩形了怎么会不规则,又不是多边型。既然矩形4个定点都知道了,还能求不出中心点?
解决方案十五:
引用13楼xdashewan的回复:
Quote: 引用12楼jinianjun的回复:
这个矩形可不是规则的矩形啊,怎么会是“长和宽的两个中心点”呢都说是矩形了怎么会不规则,又不是多边型。既然矩形4个定点都知道了,还能求不出中心点?
好吧,您说得到的矩形是规则的,请看下图:这是很简单的几个点组成的一个路径。请问下,我是怎么去得到一个规则的矩形
解决方案:
引用13楼xdashewan的回复:
Quote: 引用12楼jinianjun的回复:
这个矩形可不是规则的矩形啊,怎么会是“长和宽的两个中心点”呢都说是矩形了怎么会不规则,又不是多边型。既然矩形4个定点都知道了,还能求不出中心点?
上图中,四个顶点是想要最小的圆把所有点包起来,这四个顶点包起来就可以。我是这么理解的。可是实在想不到这四个点怎么得到一个规则的矩形。当然其他别的情况更是多了,轨迹是千变万化的
解决方案:
图挂了,补图
解决方案:
引用15楼jinianjun的回复:
想要最小的圆把所有点包起来,这四个顶点包起来就可以。我是这么理解的。可是实在想不到这四个点怎么得到一个规则的矩形。当然其他别的情况更是多了,轨迹是千变万化的
引用1楼xdashewan的回复:
运动半径:这个相对简单,你只要找到经度最大最小值,维度最大最小值,可以得到一个矩形,这个矩形中两跟对角线中最长的那根就是圆的直径,交叉点就是圆心。
从这张图再回头看我1楼给你回的帖子
解决方案:
引用17楼xdashewan的回复:
Quote: 引用15楼jinianjun的回复:
想要最小的圆把所有点包起来,这四个顶点包起来就可以。我是这么理解的。可是实在想不到这四个点怎么得到一个规则的矩形。当然其他别的情况更是多了,轨迹是千变万化的引用1楼xdashewan的回复:
运动半径:这个相对简单,你只要找到经度最大最小值,维度最大最小值,可以得到一个矩形,这个矩形中两跟对角线中最长的那根就是圆的直径,交叉点就是圆心。从这张图再回头看我1楼给你回的帖子
实在抱歉,真是一图胜千言,我明白了,再次表示感谢。
解决方案:
引用17楼xdashewan的回复:
Quote: 引用15楼jinianjun的回复:
想要最小的圆把所有点包起来,这四个顶点包起来就可以。我是这么理解的。可是实在想不到这四个点怎么得到一个规则的矩形。当然其他别的情况更是多了,轨迹是千变万化的引用1楼xdashewan的回复:
运动半径:这个相对简单,你只要找到经度最大最小值,维度最大最小值,可以得到一个矩形,这个矩形中两跟对角线中最长的那根就是圆的直径,交叉点就是圆心。从这张图再回头看我1楼给你回的帖子
这么看的话,矩形是绝对规则的,两根对角线的长度也必然是完全相等的,那么就没有“这个矩形中两跟对角线中最长的那根”的说法了,对吗
解决方案:
引用19楼jinianjun的回复:
这么看的话,矩形是绝对规则的,两根对角线的长度也必然是完全相等的,那么就没有“这个矩形中两跟对角线中最长的那根”的说法了,对吗
这样算对角线是一样长的。不过有一点要先告诉你,这是近似最小圆,并非真正的最小圆。真正的最小圆算法是要求出所有点之间距离最远的两个点,以那两个点的距离为直径画出的圆才是最小圆。但你坐标很多,要算出最远两点绝非易事,所以才用近似算法。如果追求高精度就要慎重考虑下。
解决方案:
引用20楼xdashewan的回复:
Quote: 引用19楼jinianjun的回复:
这么看的话,矩形是绝对规则的,两根对角线的长度也必然是完全相等的,那么就没有“这个矩形中两跟对角线中最长的那根”的说法了,对吗这样算对角线是一样长的。不过有一点要先告诉你,这是近似最小圆,并非真正的最小圆。真正的最小圆算法是要求出所有点之间距离最远的两个点,以那两个点的距离为直径画出的圆才是最小圆。但你坐标很多,要算出最远两点绝非易事,所以才用近似算法。如果追求高精度就要慎重考虑下。
“真正的最小圆算法是要求出所有点之间距离最远的两个点,以那两个点的距离为直径画出的圆才是最小圆”。这个非常对的,我现在就是想求出所有点中距离最大的两个点之间的距离。不知有什么算法,总不能把所有的点两两组合去一一对比吧