gpt4 book ai didi

mysql - 什么数据库和 java 库用于空间分析?

转载 作者:可可西里 更新时间:2023-11-01 08:07:05 25 4
gpt4 key购买 nike

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

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

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

  1. 我能否在 MySql 中使用空间扩展(使用点等数据类型)并将其映射到 JPA 2 支持的实体(如 DataNucleus 库,如果它们受 JPA 2 支持)。它们重量轻,可以通过持久层 self 持久化。
  2. 在经历了更改数据库和使用 hibernate 所需的所有痛苦和努力后,迁移到 PostGIS 和 Postgres(它们似乎具有更好的空间支持)是否更好? Netbeans 支持 Hibernate,但在尝试使用 JDBC for PostGis 时,我遇到了问题。如果我走这条路,需要一个很好的教程来开始。
  3. 使用已经就位的基础设施并计算与哺乳期 A 和 B 的距离。类似于 Jan Philip Matuschek 在本文中完成的方法

不好意思把问题集中在一起。问候克里斯

最佳答案

如果您只有点位置,MySQL 的空间扩展通常没问题,但如果您想在多边形中查找点(即按区域查询)或使用奇特的索引和搜索算法,它就会开始不知所措。有一个 really good cross comparison以帮助显示不同空间数据库之间的差异。

我发现迁移到 PostgreSQL 和 PostGIS 有更多好处。还有更多的 GIS 应用程序可以直接与 PostGIS 一起工作,例如 QGIS、Geoserver 等。最新版本的 PostGIS 有 a KNN nearest neighbor search operator例如,从数百万行中快速找到距离 map 上特定点最近的 25 个点(另请参阅 here )。

参见 the manual适用于 JDBC 和 PostGIS。至于 JPA,请参阅 PostGIS and JPA 2.0

至于距离计算,参见ST_DistanceST_Distance_Spheroid .

关于mysql - 什么数据库和 java 库用于空间分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10498863/

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