3

ユーザーの場所を保存する Web プロジェクトに取り組んでいます。このプロジェクトは現在、関係データベースのマッピングに MySql 5.5 と JPA 2 を使用し、中間層として EJB 3.1 を使用しています。MySql の Decimal データ型で経度と緯度のデータを保存します。

ユーザーがマップ上で (Google Map API 3 を使用して) マークした場所の近くのポイント (GPS 座標) を検索できるように、プロジェクトを拡張したいと考えています。

プロジェクトでコンポーネントの変換または変更を開始する前に、いくつかのヒントと提案が必要です。可能であれば、チュートリアル、変更を実現する方法、および使用するツール (ライブラリ、開発ツールなど) を示します。これが私の質問です。

  1. MySql で Spatial 拡張機能を使用して (Point などのデータ型を使用)、これを JPA 2 でサポートされているエンティティ (JPA 2 でサポートされている場合は DataNucleus ライブラリなど) にマップできますか? これは軽量であり、永続レイヤーを介してそれらを永続化できます。
  2. データベースを変更し、代わりに休止状態を使用するために必要なすべての労力と労力を使用して、PostGIS と Postgres (空間サポートが優れているようです) に移行する方がよいでしょうか。Netbeans は Hibernate をサポートしていますが、PostGis の JDBC を使用しようとすると、問題が発生します。この道を進む場合は、開始するための優れたチュートリアルが必要です。
  3. すでに配置されているインフラストラクチャを使用して、授乳 A と B からの距離を計算します。Jan Philip Matuschekによるこの記事で行われた方法と同様

質問をまとめてすみません。よろしくクリス

4

1 に答える 1

4

通常、MySQL の Spacial 拡張機能は、ポイントの位置のみを取得する場合は問題ありませんが、ポリゴン内のポイントを検索する場合 (つまり、地域ごとにクエリを実行する場合)、または高度なインデックスと検索アルゴリズムを使用する場合は、圧倒され始めます。異なる空間 DB 間の違いを示すのに役立つ、非常に優れた相互比較があります。

PostgreSQL と PostGIS への移行には、さらに多くの利点があることがわかります。また、QGIS、Geoserver など、PostGIS で単純に動作する GIS アプリケーションが他にも多数あります。PostGIS の最新バージョンには、たとえば、数百万行から最も近い 25 ポイントをすばやく見つけるための KNN 最近隣検索演算子があります。マップ上の特定のポイントに移動します (こちらも参照してください)

JDBC と PostGISのマニュアルを参照してください。JPA については、 PostGIS および JPA 2.0を参照してください。

距離の計算については、ST_DistanceST_Distance_Spheroidを参照してください。

于 2012-05-10T20:19:10.370 に答える