我一直致力於爲用戶存儲位置的Web項目。該項目目前使用MySql 5.5和JPA 2來映射關係數據庫,並將EJB 3.1作爲中間層。我將經度和緯度數據存儲在MySql中的十進制數據類型中。什麼數據庫和Java庫用於空間分析?
我想擴展項目,以便用戶可以在地圖上標記出的位置(通過使用Google Map API 3)附近搜索點(GPS座標)。
在開始轉換或更改項目中的組件之前,我需要一些提示和建議。如果可能的話,使用教程以及如何實現更改以及使用哪些工具(庫,開發工具等)。這是我的問題。
- 我可以在MySQL中使用空間擴展(使用的數據類型,如點),這映射到由JPA 2支持實體(如DataNucleus將庫,如果它們被JPA 2支持)。這是重量輕,可以堅持自己通過持久層。
- 遷移到PostGIS和Postgres(它似乎有更好的空間支持),而改變數據庫和使用hibernate所需的所有痛苦和努力會更好。 Netbeans具有Hibernate支持,但是在使用JDBC for PostGis時,我偶然發現問題。如果我走上這條路,需要一個很好的教程來開始。
- 使用已就地和Jan Philip Matuschek
計算從哺乳期A和B.本文中所做的那樣類似的距離,請原諒我聚類問題的基礎設施。 Regards Chris
我已經沉浸在自己多一點。我現在知道的是,我不僅需要空間分析。但是我需要一個擁有地理支持的數據庫,而我對純粹的笛卡爾計算不太感興趣。由於我收集的職位將在更大的區域範圍內。 PostGIS支持WGS 84,功能不多。但它有我現在需要的一次。當我有一個工作原型時,我會報告。 – Chris
如果MySQL支持地理(大地)座標,我還沒有發現任何東西。 – Chris
我不知道MySQL對地理的支持,但這在PostGIS中都是可行的。 PostGIS有一個'GISTree'索引,它允許你索引你的地理(Oracle中的r-tree),它允許更快的地理查詢。你計劃做'地區'(你可以使用緯度/經度來定義一個多邊形,然後搜索例如,DB點在那個多邊形中),或者你打算做「最接近」還是「距離這個點2英里」? – Twelfth