問題タブ [spatial-index]

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 投票する
1 に答える
461 参照

sql-server - SQL Server の空間インデックスで STCrosses() を使用する

Geography データの Microsoft StCrosses() 関数は空間インデックスをサポートしていますか?

空間インデックスでこの関数を実行しようとすると、次のエラー メッセージが表示されます。

「クエリ プロセッサは、空間インデックス ヒントを含むクエリのクエリ プランを生成できませんでした。理由: 空間インデックスは、述語で指定されたメソッド名をサポートしていません。インデックス ヒントを削除するか、SET FORCEPLAN を削除してみてください」

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

python - rtree で、フロート等価性テストのしきい値を指定するにはどうすればよいですか?

rtree で、フロート等価性テストのしきい値を指定するにはどうすればよいですか?

最近傍点をチェックする場合、rtree は指定された数よりも多くの結果を返すことがあります。これは、2 つの点が等距離にある場合と同様に、両方の点が返されるためです。この等距離を確認するには、距離が浮動小数点であるため、何らかのしきい値が必要です。このしきい値を制御できるようにしたい。

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

sql-server - SQL Server で空間インデックスを使用するとエラーが発生する

私は空間インデックスを使用し、WHEREステートメントを実行しようとすると:

正常に動作しますが、OR で実行しようとすると:

次のエラーが表示されます。

クエリ プロセッサは、空間インデックス ヒントを含むクエリのクエリ プランを生成できませんでした。理由: 条件に必要なバイナリ空間メソッドが見つかりませんでした。インデックス ヒントを削除するか、SET FORCEPLAN を削除してみてください。

このステートメントの問題は何ですか?

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

mysql - ポイントを見つけ、近さで並べ替え、1-20、21-40 などを取得する方法 Myisam と mysql と空間インデックスを使用して効率的に

近くにある 20 の最寄りのビジネスを見つけたいとします。後者は、次の 20 を最も近くで見たいなどです。はい、myisam があります。ポイントに空間インデックスがあります。送信する必要がある実際の SQL コマンドを探しています。

明確にするために:

ノート:

  1. mysql myisam空間インデックスを使用しています。私はグーグルを前後にサーフィンしましたが、正確な必要性について何も見つかりませんでした.
  2. テーブル全体の距離を計算したくありません (非効率的です)。空間インデックスの全体的なポイントは、少なくとも多くのポイントを効率的に取り除くことができるということです。左と上のいくつかのポイントが資格を持たない場合、そのポイントの左と上のすべてのポイントも資格を失います。
  3. まだ非効率な領域の距離を計算したくありません。私の関心のある地域は 10 km で、そこには 65,000 の企業があります。
  4. ポイントを距離でソートし、ポイント1-20、21-40、41-60などを表示できるようにしたいので、妥当な数のポイントの距離を計算することは気にしません.
  5. postgis http://blog.opengeo.org/2011/09/28/indexed-nearest-neighbour-search-in-postgis/でこれを行う方法を見つけました。
  6. サンプルまたは実際のサンプル SQL コマンドとして実際の SQL コードを含む Web サイトが必要です。ですから、「空間を使用してください」とだけ言わないでください。当たり前。知っている。実際の sql コマンドが必要です。
  7. 最初に小さな領域を検索するという複雑なループを実行したくありません。これを mysql エンジンによって効率的に実行される 1 つのストロークで行う sql コマンドが必要です。
  8. デカルト距離は問題ありません。お客様が北極または南極にいる場合を除き、私たちが地球に住んでいることを知る必要はありません。

160万ビズあります。もちろん、それらすべての距離を計算して並べ替えるのはばかげています。

それが地理空間インデックスの出番ですよね?

では、どの SQL コマンドを送信すればよいのでしょうか?

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

node.js - mongodb:2d インデックスの戻り距離で見つけることができますか?

私はmongodb docから、そのdb.runCommandがgeoNearリターン距離を持つこともわかります。

node.js で mongoose を使用していますが、Model.find({'loc': { $near: [lng, lat], $maxDistance:5/111.12},... で同じことが達成できるかどうかを知りたいです。 .)

複数の 2D インデックスがある場合、geoNear を使用した runCommand は機能しません。コレクションに 2 つの 2d インデックスがあります。1 つはスキーマで定義され、もう 1 つは DbRef の一部です。

また、マングースで runco​​mmand に使用される正確な構文については、あまり満足していません。

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

sql-server - Access to MSSQL から緯度経度を取得する

会場情報を含む Access テーブルがあります。私は、ウェブサイトの閲覧者に最も近いイベントを表示するために、最も近いものをいじっています。

主要な社内データベースは Access ですが、Web サイトは MSSQL からデータを引き出します。私が現在行っていることは、Access データベースを維持し、テーブルを Excel 2003 としてエクスポートし、.xls を Web サーバーに転送し、テーブルを削除して .xls を (SQL Management Studio 内で) インポートすることです。

これは骨の折れるプロセスであり、.xls をインポートするときに、すべての空間情報を調べてリセットする必要があることに気付きました (主キーを設定し、緯度/経度のデータ型を地理に設定し、空間インデックス)。

このプロセスを自動化する方法はありますか? インポート プロセス中にデータ型とキーを設定する方法はありますか? 明らかに、正しいことは、MSSQL をバックエンドとして使用し、すべての作業を放棄することです。残念ながら、私の上司はこの変更を受け入れてくれませんでした。

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

sql-server - 空間インデックスにより、STContains を使用したクエリが遅くなる

SQL Server 2012 で空間インデックスを使用できるかどうかをテストしています。

だから、私はテーブルを持っています

そしてインデックス

[Bounds] 列には 5 ポイントのポリゴン、実際には長方形 (x1 y1、x1 y2、x2 y2、x2 y1、x1 y1) が含まれます。

@bounds 変数には、同じタイプの四角形が含まれています。奇妙なことは、次のクエリ

空間インデックスなしで 3 倍以上高速に実行されます。

インデックスでは、時間の 65% がレコード テーブルに対するクラスター化インデックス シークであり、29% がフィルターです。全部で65秒。

インデックスがない場合、時間の 92% はフィルターであり、8% はレコード テーブルのクラスター化インデックス スキャンです。合計19秒。

それで、私はここで何が間違っていますか?

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

sql-server - SQL Server 空間インデックスの最近隣

最も近い近隣のジオポイントをクエリしようとしています。空間インデックスを使用するかどうかに関係なく、常に同様の時間を取得し、約 6 秒かかります。このクエリを高速化するにはどうすればよいですか?

これが私のクエリです:

これが私のインデックスです:

どんな助けでも大歓迎です。

編集/解決策:

クエリを次のように変更しました。

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

mysql - 本当にMySQL空間関数を使用する必要がありますか?

さて、私はこの事件についてあなたの意見が欲しいです:

最大で2つまたは3つのテーブルを含むデータベースが必要です。そのうちの1つには、ポイント(緯度、経度)およびその他の情報が含まれます。

必要なのは本当に簡単です。指定された半径内のポイントを取得します。

私はそれを行う方法を尋ねていません(しかし、特にそれが良い習慣についてであるならば、どんなアドバイスも大歓迎です)、私はMySQLの空間サポートを利用することが役立つかどうか知りたいです。必要なものは1つのクエリでかなり簡単に取得できるため、Spatialサポートを使用して期待するのはパフォーマンスを向上させることです。

では、空間インデックスは著しく役立つのでしょうか?テーブルにはそれほど多くのポイントが保存されるとは思いません。私は200以下と言うでしょう。

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

ios - どの空間インデックスアルゴリズムを使用する必要がありますか?

の空間インデックスデータ構造の王様を実装したいと思いMKAnnotationsます。現在、距離基準に基づいてそれらをフィルタリングしようとすると、ひどく遅くなります(3〜4kの場所、現在は単純なダブルで非常に遅いfor...)。

MKAnnotationsのクラスターを作成して、別のクラスターに近いかどうかを判断したいと思います。また、これらの場所はある程度(作成)の順序であり、「前」/「次」の機能が「ジャンプ」するために必要になります(これは必須ではありません)。kd-treeと構造について読んだことがr-treeあり、どちらもフィルタリング/クラスタリングの高速距離/隣接取得オプションを満たしているようですが、どちらが私に最適か、または他のオプションもあるかどうかはわかりません。どのアルゴリズム/データ構造を使用する必要がありますか?

更新:これらの場所をCore Dataデータベースに保存します。これらは、パスを表します。マップを開くと、それらは配列にフェッチされ、距離の計算と注釈の作成にその配列を使用します。ユーザーがマップを移動/ズームするとき、私はそれらをループして、マップ上で何を変更する必要があるかを決定するので、全体が少し静的です。私が理解したように、私が木を使用している場合、そこに場所を保存することができ、ズーム/移動が発生したときに、それを検索して新しい領域の場所を取得するだけです。これは本当ですか ?

動的な場合でも、この配列に新しい場所を追加できる場合、それは1回の挿入であり、ほとんど発生しません。