Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java程序中的位置计数问题_Java_Sql_Jakarta Ee - Fatal编程技术网

Java程序中的位置计数问题

Java程序中的位置计数问题,java,sql,jakarta-ee,Java,Sql,Jakarta Ee,我在GPS位置上工作,需要在相应的地址中转换纬度和经度。我有一个包含所有纬度和经度的数据库(超过1,50000个数据),其实际地标是一个主表中的地址 我们在许多车辆上安装了GPS设备,这些车辆在所有地理位置上移动。每隔2分钟,这个设备就会发送实际的纬度和经度位置,我会将这个纬度和经度以及地图发送到主表中,并检查主表中哪个地标附近。为了进行此计算,我做了一些数学运算,将一些增量值添加到从车辆获取的纬度和经度,然后从主表中查找最近的搜索,一旦找到,我们显示车辆距离XYZ位置5公里,我们从主表中获取X

我在GPS位置上工作,需要在相应的地址中转换纬度和经度。我有一个包含所有纬度和经度的数据库(超过1,50000个数据),其实际地标是一个主表中的地址

我们在许多车辆上安装了GPS设备,这些车辆在所有地理位置上移动。每隔2分钟,这个设备就会发送实际的纬度和经度位置,我会将这个纬度和经度以及地图发送到主表中,并检查主表中哪个地标附近。为了进行此计算,我做了一些数学运算,将一些增量值添加到从车辆获取的纬度和经度,然后从主表中查找最近的搜索,一旦找到,我们显示车辆距离XYZ位置5公里,我们从主表中获取XYZ位置,即最近的点

这个程序基本上需要很多时间来计算位置,因为我们在车上安装了10000个GPS设备,每个设备在2分钟内发送GPS数据,所以你可以想象我们得到了多少数据

请您帮助我解决这个问题,并使它非常可扩展和快速


提前谢谢。

在数据库上使用GIS层怎么样?类似PostGIS的东西为sql添加了一个新层,具有这种功能。从:

3.7。找到另一个对象半径内的所有对象的最佳方法是什么

为了最有效地使用数据库,最好执行radius查询 其中结合了半径测试和边界框测试:边界 box test使用空间索引,可以快速访问 然后应用半径测试的数据

ST_DWithin(几何、几何、距离)函数是一种简便的方法 执行索引距离搜索的步骤。它通过创建一个 搜索足够大的矩形以包围距离半径,然后 对结果的索引子集执行精确距离搜索

例如,查找具有100米点(1000)的所有对象 以下查询将很好地工作:

从ST_DWithin(geocolumn,'点(1000))所在的geotable中选择* 1000)', 100.0);


把它分解成几个组成部分,看看什么花费的时间最长,然后集中精力。是数据发送回来的吗?这是计算吗?这是对位置的SQL搜索吗?什么事耽误了你的时间?您需要将其分解为-->B-->C-->D-->E-->F等,并计算出每一步所需的时间,并将时间集中在实现最大收益的地方。继续这样做,直到性能可以接受为止。如果您没有从-->F中跟踪时间的方法,那么您需要构建它。@xQbert我们有一个表,其中有三列纬度、经度和位置-一旦我从设备中获得任何纬度和经度,我们将在纬度和经度列中插入,但不在位置列中插入任何内容,通过发送纬度和经度对主表进行计算后,我们得到距离XYZ约5公里的位置,然后在第一个表的位置列中进行更新。实际上,将纬度和经度传递给主表以从主表中可用的地标获取最近的位置需要很多时间,我在这里请求帮助以改进。谢谢你有程序吗?功能?或者是在SQLServer200x中长期运行的东西?或者MySQL,或者ORACLE,或者DB2,或者。。。如果是这样,那么查看实际的长时间运行的SQL和执行计划将有助于提高性能。或者您是否在重复尝试从Java到数据库,以尝试查找“最近的”地标?@xQbert是的,我重复尝试查找最近的位置,我使用的是SQL server 2005,我使用的是函数而不是过程。从SQL切换到MongoDB会有帮助吗?