問題タブ [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 投票する
4 に答える
128 参照

sql - JOIN の後に単純な AND を追加するとパフォーマンスが低下する

約 500 ポイントを含むテーブルがあり、許容範囲内の重複を探しています。これには 1 秒もかからず、500 行が表示されます。同じ点 (PointA = PointB) を与えるため、ほとんどの距離はゼロです。

一番下のコメントアウト行を使用すると、14 行になりますが、実行時間は最大 14 秒になります。私のポイント テーブルが数万に拡大するまでは、それほど大したことではありません。

答えがすでに出ている場合は、事前にお詫び申し上げます。私は見ましたが、新しいので、頭をはるかに超えた投稿を読んで迷子になります。

補遺: ObjectID は bigint であり、テーブルの PK であるため、ステートメントを次のように変更できることに気付きました。

これで半分の時間がかかり、半分の結果 (7 秒で 7 行) が得られます。重複がなくなりました (ポイント 4 がポイント 8 に近く、続いてポイント 8 がポイント 4 に近いなど)。ただし、テーブルが非常に大きくなるため、パフォーマンスの問題は依然として懸念されます。そのため、パフォーマンスの問題はすべて問題になります。

補遺 2: 以下のように JOIN と AND (または提案されている WHERE) の順序を変更しても違いはありません。

@Tol の値を大きな値に変更して、多くの計算が必要になるにもかかわらず、パフォーマンスを変更せずに 100 行を超える値を返すことができるのは魅力的です。しかし、単純な A を追加する

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

mysql - 空間クエリの結果で mysql テーブルを更新する

mysql を使用して、ポリゴン フィーチャ (postsec) 内のポイント フィーチャ (店舗) の数をカウントしています。

私が持っている選択クエリは正常に動作しますが、生成された結果でテーブル postsec を更新したいと考えています。私が持っているクエリは以下のとおりです。

update postsec set new_column = ([select query]) など、これを行うためのいくつかの方法を試しましたが、正しい方法が見つからないようです。

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

postgresql - st_intersect() が postgresql で機能しない

私はpostgresqlバージョンを使用しています:「gcc(GCC)4.6.3 20120306(Red Hat 4.6.3-2)でコンパイルされたx86_64-unknown-linux-gnu上のPostgreSQL 9.3.1、64ビット」

ポイントとポリゴンをデータ型として使用して、2つのテーブルAとBを作成しました。ポイントがポリゴンの内側にあるかどうかを知りたいです。このために、私は ST_Intersect(A.point_LatLong , B.polygon_abc); を使用しようとしています。私のクエリは次のとおりです。

ここでpoint_latLongpolygon_abcは、テーブル A と B のポイントとポリゴンのデータ型を持つ列名です。

しかし、このクエリはエラーを返します:

エラー: 関数 st_intersect(point, polygon) は存在しません
3 行目: WHERE city.city_name = 'callifornia' AND ST_intersect(city.c... ヒント
: 指定された名前と引数の型に一致する関数はありません。
型キャスト。


どうすればこの問題を解決できますか? st_contains() などの postgresql で他の空間メソッドを使用することさえできません。解決策があれば教えてください。

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

postgresql - ST_GeomFromText を使用した postgresql クエリが機能しない

Postgres クエリを実行しようとしています:

しかし、このクエリはエラーを返します:

エラー: 解析エラー - 無効なジオメトリ
SQL 状態: XX000
ヒント: "Polygon((1,1" <-- ジオメトリ内の位置 12 で解析エラー

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

sql - SQLジオメトリは半径内のすべての点を見つけます

私は SQL に精通していますが、SQL ジオメトリ機能を使用するのは初めてです。おそらく解決すべき非常に基本的な問題がありますが、ジオメトリ オブジェクトの使用方法を説明する適切なリソースがオンラインで見つかりませんでした。(Technet は、新しいことを学ぶにはお粗末な方法です...)

デカルト平面上に 2 次元の点のコレクションがあり、半径のコレクション内にあるすべての点を見つけようとしています。

次のような構文を使用してテーブルを作成し、データを入力しました。

Update [Things] set [Location] = geometry::Point(@X, @Y, 0)

(@X、@Y は単なる x 値と y 値です。0 はすべてのオブジェクトで共有される任意の数値であり、正しく理解すればフィルタリングを設定できます)

ここで私はレールから外れます...ある種のポリゴンコレクションとそれを使用してクエリを構築しようとしますか、それとも円形ポリゴンの束を構築せずに複数の半径の交差をチェックする簡単な方法はありますか?

補遺: 複数の半径の質問に対する答えを誰も持っていない場合、単一の半径の解決策は何ですか?

アップデート

以下は、星が xy グリッド上にポイントとして保存されている架空の星データベースを使用して、私が作成したいくつかの例です。

ボックス内のすべてのポイントを選択します。

これをパターンとして使用すると、複数のポリゴンを定義するなど、あらゆる種類の興味深いことができます。

または距離を確認する:

挿入ステートメントの例

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

r - Rの1つの位置で多くのポイントを処理する

R でのデータ処理について質問があります。2 つのデータセットがあります。どちらも元は .csv ファイルです。2 つのサンプル データセットを用意しました。

表 A - 人物
http://pastebin.com/HbaeqACi

表 B - 都市
http://pastebin.com/Fyj66ahq

読み込みと視覚化に対応する R コードの作業をできるだけ少なくするためです。

その結果、すべての都市と人を視覚化する地図ができました。
私の問題:すべての人は、これら 3 つの都市にのみ分散しています。

私の質問:

  1. より一般的な質問: これは R の問題ですか?
  2. ある地点の人数を可視化したバブルマップのようなものを作りたいです。例: A 市には 20 人、B 市には 5 人。都市 A の位置は、都市 B よりも大きなバブルになるはずです。
  3. 特定の位置にいる人数を示すラベルを作成したいと考えています。私はすでにggplo2geom_textオプションでこれを実現しようとしましたが、特定の位置ですべてのポイントを合計してラベルに書き込む方法がわかりません。
  4. より理論的なアプローチ (後でこれに戻るかもしれません): 人口が最も多い地域を示す密度マップ/クラスター マップのようなものを作成したいと考えています。使用できるいくつかのパッケージを既に検索しています。提案されたものは、SpatialEpi、spatstat、および DCluster でした。私の質問: クラスター分析を実行するには、人から特定のオブジェクト (スーパーマーケットなど) までの距離が必要ですか?

うまくいけば、これらはあまり多くの質問ではありませんでした.
どんな助けでも大歓迎です。前もって感謝します!

ところで: サンプル データセットを含む質問を準備するためのより良いヘルプはありますか? ファイルをどこかにアップロードする必要がありますか、それともペーストビンの方法で問題ありませんか?