問題タブ [spatial-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
9032 参照

java - Javaで2D空間座標を保存および検索するための優れたデータ構造は何ですか

私は現在、2つの2次元座標(長方形の左上と右下の領域)によって定義される領域を設定する機能を1つの機能に含むゲームのプラグインを作成しています。これらのリージョンは保存され、各リージョンに関連付けられた他のさまざまなデータが含まれます。プレイヤーが世界を動き回っているので、プレイヤーの座標だけからこれらの領域の1つに入るタイミングを決定する必要があります。これは、1秒間に数百回呼び出されるため、効率的である必要があります。 。

この種の検索を効率的にサポートできるデータ構造はありますか?もしそうなら、使用するJava実装を見つけるか、必要に応じて自分で実装するためのドキュメントをどこで見つけることができますか?

また、バルクロードのみをサポートしているように見えるツリー構造がいくつか見つかりましたが、この構造にリアルタイムで値を追加および削除できる必要があります。

0 投票する
0 に答える
267 参照

solr - 不明なクエリ タイプ 'spatial' Solr がロードしたプラグインを確認するにはどうすればよいですか?

私のインストールで Apache Solr 用の Spatial Search Plugin をセットアップしようとしています。起動時のログから、JAR ファイルが見つかったように見えますが、"{!spatial}" だけでクエリを実行しようとすると、クエリの種類がわからないというエラーが表示されます。

プラグインを実際に取得していないか、何か他のことが間違っていると思います。Solr がその JAR を認識していることを確認するにはどうすればよいですか?

余談ですが、私は JAR を solr/lib ディレクトリに置いただけなので、他にやらなければならないことがあるかどうかはわかりません。

0 投票する
1 に答える
935 参照

mysql - MySQL 空間データ型のインデックス作成のパフォーマンス比較

ポイントとポリゴン (GeomCollection タイプ) を含むジオメトリ タイプのインデックス付き列に対する MBR 関数クエリは、ポリゴン タイプのインデックス付き列に対する MBR 関数よりも遅くなりますか?

私のプログラマーの本能は、それは遅くなるだろうし、できるだけ記述的な空間型を使うべきだと教えてくれます。

編集:デニスの答えを読んだ後、本当の質問は次のとおりです。

MySQLでは、「ポイントとポリゴンを含むジオメトリタイプのインデックス付きの列には、実際に後者が含まれていますか、それともMBRに縮小されていますか?」

0 投票する
1 に答える
2594 参照

sql-server-2008 - SQLサーバー空間でポイントの半径内にポイントを取得する最も効率的な方法

特定のポイントの半径内のポイントを取得するための最も効率的なクエリを作成しようとしています。結果はそれほど正確である必要はないので、正確さよりも速度を優先します。

次のように、STDistance を使用してポイントの距離を比較する where 句を使用してみました (ここで、@point と v.GeoPoint は地理タイプです)。

また、これに似た STIntersects を使用するもの:

これらのクエリのいずれかが優先されますか、それとも見逃した別の機能がありますか?

0 投票する
1 に答える
2435 参照

sql-server-2008 - SQL Server 2008 Geometry.STBuffer(…) が本当に遅い

次のような基本的な SQL クエリがあります。

これは、データベースからマップの境界を取得し、500m ごとにバッファリングする基本的なものです。私が抱えている問題は、信じられないほど遅く、サーバーがメモリ不足になることです! GIS プログラムでのこのような単純な操作の実行には数秒かかりますが、これは約 1 分間実行してからあきらめます。

境界はかなり複雑ですが、サーバーがメモリ不足になるほど複雑であってはなりません。

バッファー距離を 100m に減らすと、約 14 秒以内に実行および完了しますが、それでもリアルタイムで使用するには遅すぎます。

なぜそんなに遅いのか、またどのようにスピードアップできるかについてのヒントはありますか?

ありがとう、

0 投票する
0 に答える
229 参照

django - GeoDjango でネストされたクエリからのエラー

GeoDjango でinフィールド ルックアップを使用してネストされたクエリを作成するのに問題があります。次のコードは、問題を示しています。

上記のコードでは、次の例外が発生します。

(ここに完全なスタック トレースがあります)

内部クエリに空間フィルターが含まれている場合は常にエラーが発生するようです。ただし、次のネストされたクエリは正常に機能します。

問題の原因は何ですか?

0 投票する
1 に答える
699 参照

django - GeoDjangoを使用したSpatialiteの特定の構成が必要ですか?

https://docs.djangoproject.com/en/1.3/ref/contrib/gis/db-api/によると、SpatialiteはをサポートしていますGeoQuerySet.distance()。ただし、エリアリストを(属性MultiPolygonとしてmpoly)インポートしたので、次のことを実行しようとしています。

そして、使用可能なものの代わりに、「ValueError:SQLiteは測地座標系での線形距離計算をサポートしていません」というエラーメッセージのみが表示されます。

ここで何が問題になっていますか、Spatialiteで特別な構成が必要ですか、それともドキュメントが明らかに間違っていますか?

0 投票する
2 に答える
1895 参照

algorithm - 三角形の内側にある点を照会するためのデータ構造

ピクセルにラスタライズされたエッジを含む 2D データがあります。軸に沿っていない2D 三角形にあるすべてのエッジ ピクセルを返す効率的なデータ構造を実装したいと考えています。

スパース データの空間クエリ

この画像は問題の視覚化を示しており、白はラスター化されたエッジを示し、赤はクエリの三角形を視覚化しています。結果は、境界上または赤い三角形の内側にあるすべての白いピクセルになります。

  • 画像をさらに見ると、まばらなブールデータがあることに気付きます。つまり、黒のピクセルを 0 で、白のピクセルを 1 で表すと、データ内の 1 の数が 0 の数よりもはるかに少ないことを意味します。したがって、赤い三角形をラスタライズし、その内部の各ポイントが白か黒かを確認することは、最も効率的な方法ではありません。

  • データのまばらさに加えて。白いピクセルはエッジに由来するため、互いに結合する性質があります。ただし、他のラインとのジャンクションでは、2 つ以上の隣接ラインがあります。ジャンクションにあるピクセルは 1 回だけ返されます。

  • データはリアルタイムで処理する必要がありますが、GPU の支援はありません。さまざまな三角形のコンテンツに対して複数のクエリがあり、各クエリの後、データ構造からポイントが削除される場合があります。ただし、データ構造を最初に埋めた後は、新しいポイントは挿入されません。

  • ラスター化されたエッジが到着した時点で、クエリ三角形は既知です。

  • データ エッジよりも多くのクエリ トライアングルがあります。

多くの空間データ構造が利用可能です。しかし、私の問題にはどれが最適なのか疑問に思っています。この問題を解決するために高度に最適化されたデータ構造を実装したいと考えています。これはプロジェクトのコア要素になるからです。したがって、データ構造の混在や省略も大歓迎です!

  • R ツリーは、四角形ベースのクエリをサポートしているため、これまでこの問題に対して私が見つけた最良のデータ構造のようです。クエリ三角形の AABB 内のすべての白いピクセルをチェックし、返された各ピクセルがクエリ四角形内にあるかどうかをチェックします。

    ただし、エッジベースのデータは簡単に四角形にグループ化できないため、R ツリーがどの程度うまく機能するかはわかりません。

    構造が満たされるとすぐに作成されるクエリ三角形に関する情報を使用して、R ツリーの構造を事前に構築することが理にかなっているのかどうかもわかりません (前述のように、クエリ三角形は既に知られています)。データが到着したとき)。

  • 問題を逆にすることも有効な解決策のようです.2次元間隔ツリーを使用して、白いピクセルごとにそれを含むすべての三角形のリストを取得します. その後、それらすべての結果セット内に既に格納されており、クエリが到着するとすぐに返されます。ただし、これがどのように実行されるかはわかりません。三角形の数はエッジの数よりも多く、それでも白いピクセルの数よりは少ないです (エッジはほとんどが 20 ~ 50 ピクセルに分割されるため)。

  • 白いピクセルが隣接ピクセルとして最も頻繁に白いピクセルを持っていることを利用するデータ構造は、最も効率的であるように思われます。しかし、今までそのようなことについて何も見つけることができませんでした。

0 投票する
2 に答える
2977 参照

sql-server-2008 - SQL Server 2008 でいくつかの Geometry オブジェクトの外側の境界を計算する

SQL Server 2008には多くのPolygonsデータ型がありGeometryます。下の画像は、これらすべてのジオメトリの選択がどのように視覚化されているかを示しています。

多くのジオメトリ

私がする必要があるのは、これらすべてのポリゴンの外側の境界を表す Polygon を作成することです。そこで、以前の空間に関する質問に対する回答を使用して、次のコードを作成しました。

これにより、次の結果が生成されました。これには、ポリゴン間の穴が原因でクラックが含まれています。

ひび割れのある複合ポリゴン

そこで、次の変更でクエリを更新しました。

これにより結果は改善されましたが、問題が完全に解決されるわけではなく、外側の境界の精度も損なわれます。

ひび割れの少ない結合ポリゴン

これを達成する正しい方法は何ですか?STxxxx 関数のリストを調べたところ、必要な結果が得られると思われる関数が見つかりませんでした。

0 投票する
1 に答える
414 参照

autocomplete - Solrを使用して1つのクエリでオートコンプリートと空間検索を取得するにはどうすればよいですか?

現在の機能:

  • solr用語コンポーネント、パラメーターterms.prefixを使用してオートコンプリートします。
  • 地理的位置検索用のバウンディングボックス。

試したこと:

  • 私は両方のクエリを1つにまとめようとしました。ただし、地理的位置でフィルタリングする結果は得られません。むしろ、terms.prefix検索からすべてを取得します。
  • また、dismax、edismax + bbox geolocationsearchを使用してみました。プレフィックスパラメータがないため、dismaxが機能しないことはわかっています。
  • 私はグーグルで昼と夜を見て、これを理解しようとしました。
  • すべての文字がキーワードと見なされるように、フィールド名「names」に由来するのは嫌です。

どんな助けでも本当にありがたいです。