mysql-用于空间分析的数据库和Java库是什么?

我一直在从事一个用户存储位置的Web项目.该项目当前使用MySql 5.5和JPA 2来映射关系数据库,并使用EJB 3.1作为中间层.我在MysqL的Decimal数据类型中存储经度和纬度数据.

我想扩展项目,以便用户可以在他/她在地图上标记出的位置附近搜索点(GPS坐标)(通过使用Google Map API 3).

在开始转换或更改项目中的组件之前,我需要一些提示和建议.如果可能,请提供教程以及如何实现更改以及使用哪些工具(库,开发工具等).这是我的问题.

>是否可以在MysqL中使用Spatial扩展(使用Point等数据类型)并将其映射到JPA 2支持的实体(例如datanucleus库,如果它们受JPA 2支持).重量轻,可以通过持久层自行持久保存.
>迁移到PostGIS和Postgres(似乎具有更好的空间支持)是否更好,因为它需要付出所有的痛苦和精力来更改数据库并改用休眠. Netbeans支持Hibernate,但是当尝试使用JDBC for PostGis时,我偶然发现了问题.如果我走这条路,需要一个好的教程来开始.
>使用已经就位的基础设施并计算距泌乳期A和哺乳期B的距离.类似于本文由Jan Philip Matuschek完成的方法

对不起,我将这些问题归类.
问候克里斯

解决方法:

如果您只有点位置,MysqL的Spatial扩展通常可以,但是如果您想在多边形中查找点(即按区域查询)或使用花式索引和搜索算法,则它会变得不知所措.有一个really good cross comparison帮助显示不同空间DB之间的差异.

我会看到迁移到Postgresql和PostGIS还有很多好处.还有更多的GIS应用程序可以与PostGIS天真地结合使用,例如QGIS,Geoserver等.最新版本的PostGIS具有a KNN nearest neighbor search operator快速查找,例如,从几百万行中最接近的25个点指向特定点.您的地图(另请参见here).

有关JDBC和PostGIS的信息,请参见the manual.关于JPA,请参见PostGIS and JPA 2.0

关于距离的计算,请参见ST_DistanceST_Distance_Spheroid.

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...