問題タブ [spatial]

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 に答える
2086 参照

c# - C#OracleSpatialGeometriesの描画

Oracle SpatialのジオメトリをC#で表示できるシンプルなアプリを作成する必要があります。これらのジオメトリは、AutoCAD Map3D2010からOracleSpatialにエクスポートされます。

これらのオブジェクトのレイヤー、イベント(右クリックしてコンテキストメニューをポップアップするなど、オブジェクトごとに異なる可能性があります)、ポイントの作成/削除(おそらく他のポリゴンも):一種の単純なAutoCADインターフェイスをパン、ズーム、管理する必要があります。

AutoCAD OEMライセンスを探す必要がありますか?これを処理できる描画フレームワークはありますか、それとも自分で作成する必要がありますか?

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

python - 任意に分散されたデータの境界を推定する

2 次元の離散空間データがあります。このデータの空間境界を概算して、その上に別のデータセットを含むプロットを作成したいと思います。

理想的には、これは、matplotlib が plt.Polygon() パッチでプロットできる (x,y) ポイントの順序付けられたセットになります。

私の最初の試みは非常に洗練されていません。データの上に細かいグリッドを配置し、データがセル内にある場合は、そのセルの正方形の matplotlib パッチを作成します。したがって、境界の解像度は、グリッドのサンプリング周波数に依存します。以下に例を示します。グレーの領域はデータを含むセルであり、データが存在しないセルは黒です。

最初の試み http://astro.dur.ac.uk/~dmurphy/data_limits.png

OK、問題は解決しました - なぜ私はまだここにいるのですか? うーん....もっと「エレガントな」ソリューション、または少なくとも1つ高速なソリューションが欲しいです(つまり、「実際の」作業を続けたくありません。これを楽しみたいです!)。私が考えることができる最良の方法は、レイトレーシングのアプローチです-例:

  1. xmin から xmax まで、y=ymin で、データ境界が間隔 dx で交差したかどうかを確認します
  2. y=ymin+dy, do 1
  3. 1-2 を実行しますが、今度は y でサンプリングします

別の方法は、中心を定義し、r-シータ空間でサンプリングすることです。つまり、dシータの増分で放射状のスポークを使用します。

どちらも (x,y) ポイントのセットを生成しますが、隣接するポイントを順序付け/リンクして境界を作成するにはどうすればよいですか?

最近接アプローチは適切ではありません。たとえば、(Geography から借りるために) 地峡 (N&S America を接続するパナマを考えてください) が地域を閉鎖して孤立させる可能性があるためです。これはまた、別の plt.Polygon として表現したいデータに見られる穴をうまく処理できない可能性があります。

解決策は、おそらく面積最大化問題を解くことから得られます。データ範囲を定義する一連のポイントについて、これらのポイント内に含まれる最大連続エリアは? 囲まれたエリアを形成するために、n 番目のポイントの隣接ポイントは? このスキームでは、穴はどのように扱われますか? これは現在、トポロジーに誤りがありますか?

申し訳ありませんが、これの多くは私が大声で考えていることです。ヒント、提案、または解決策を教えていただければ幸いです。これは、多くのソリューション手法でよく研究されている問題だと思いますが、コーディングが簡単で、すぐに実行できるものを探しています...誰もが本当にそうだと思います!

~~~~~~~~~~~~~~~~~~~~~~~~~

マークの凸包のアイデアを使用した試み #2 を 次に示します。代替テキスト http://astro.dur.ac.uk/~dmurphy/data_limitsv2.png

このために、qhull パッケージの qconvex を使用して、極端な頂点を返すようにしました。興味のある方へ:

猫 [データ] | qconvex Fx > out

境界のサンプリングはかなり低いようで、設定をあまりいじっていませんが、忠実度を改善できるとは確信していません。

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

filter - 空間ドメインから周波数ドメインへ

フーリエ変換については知っていますが、ここでそれを適用する方法がわかりません。それはやり過ぎだと思います。回答のアイデアを提供しましたが、何を探しているのか本当にわかりません...

  1. ピクセル (x,y) の直近の 8 つのピクセルすべてを平均するが、それ自体は除外するローパス空間フィルター h(x,y) を形成するとします。

    を。同等の周波数領域フィルター H(u,v) を見つけます。

私の答えは(a)です:

これは周波数ドメインですか?

b. 結果が再びローパス フィルターであることを示します。これは係数が正であることと関係がありますか?

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

sql-server-2008 - 大きなポリゴンを持つ適切な SQL Server 2008 空間インデックスの選択

私は、扱っているデータ セットに対して適切な SQL Server 2008 空間インデックスのセットアップを選択しようとしています。

データセットは、地球全体の等高線を表すポリゴンです。テーブルには 106,000 行あり、ポリゴンはジオメトリ フィールドに格納されています。

私が抱えている問題は、多くのポリゴンが地球の大部分をカバーしていることです。これにより、プライマリ フィルターで多くの行を除外する空間インデックスを取得することが非常に難しくなっているようです。たとえば、次のクエリを見てください。

これは、テーブル内の 2 つのポリゴンのみと交差する領域をクエリしています。選択した空間インデックス設定の組み合わせに関係なく、その Filter() は常に約 60,000 行を返します。

もちろん、Filter() を STIntersects() に置き換えると、必要な 2 つのポリゴンだけが返されますが、当然、はるかに時間がかかります (Filter() は 6 秒、STIntersects() は 12 秒)。

60,000 行で改善される可能性が高い空間インデックスのセットアップがあるかどうか、または私のデータセットが SQL Server の空間インデックスとうまく一致しないかどうかについて、誰かヒントを教えてもらえますか?

より詳しい情報:

示唆されたように、世界中の 4x4 グリッドを使用して、ポリゴンを分割しました。QGIS でそれを行う方法が見つからなかったので、それを行うための独自のクエリを作成しました。最初に 16 個のバウンディング ボックスを定義しました。最初のボックスは次のようになりました。

次に、各境界ボックスを使用して、そのボックスと交差するポリゴンを選択して切り捨てました。

明らかに、4x4 グリッドの 16 個のバウンディング ボックスすべてに対してこれを行いました。最終結果は、約 107,000 行の新しいテーブルを作成したことです (これは、実際には多くの巨大なポリゴンがないことを確認しています)。

オブジェクトごとに 1024 セルの空間インデックスを追加し、レベルごとのセルには低、低、低、低を追加しました。

ただし、非常に奇妙なことに、分割されたポリゴンを含むこの新しいテーブルは、古いテーブルと同じように機能します。上記の .Filter を実行しても、最大60,000 行が返されます。私はこれをまったく理解していません。明らかに、空間インデックスが実際にどのように機能するかを理解していません。

逆説的に、.Filter() はまだ 60,000 行を返しますが、パフォーマンスは向上しています。.Filter() は 6 秒ではなく約 2 秒かかり、.STIntersects() は 12 秒ではなく 6 秒かかるようになりました。

ここで要求されているのは、インデックスの SQL の例です。

覚えていますが、オブジェクトごとにグリッドとセルのさまざまな設定を試しましたが、毎回同じ結果が得られました。

sp_help_spatial_geometry_index を実行した結果は次のとおりです。これは、単一のポリゴンが地球の 1/16 以上を占めていない私の分割データセットです。

Base_Table_Rows 215138 Bounding_Box_xmin -90 Bounding_Box_ymin -180 Bounding_Box_xmax 90 Bounding_Box_ymax 180 Grid_Size_Level_1 64 Grid_Size_Level_2 64 Grid_Size_Level_3 64 Grid_Size_Level_4 64 Cells_Per_Object 16 Total_Primary_Index_Rows 378650 Total_Primary_Index_Pages 1129 Average_Number_Of_Index_Rows_Per_Base_Row 1 Total_Number_Of_ObjectCells_In_Level0_For_QuerySample 1 Total_Number_Of_ObjectCells_In_Level0_In_Index 60956 Total_Number_Of_ObjectCells_In_Level1_In_Index 361 Total_Number_Of_ObjectCells_In_Level2_In_Index 2935 Total_Number_Of_ObjectCells_In_Level3_In_Index 32420 Total_Number_Of_ObjectCells_In_Level4_In_Index 281978 Total_Number_Of_Interior_ObjectCells_In_Level2_In_Index 1 Total_Number_Of_Interior_ObjectCells_In_Level3_In_Index 49 Total_Number_Of_Interior_ObjectCells_In_Level4_In_Index4236 Total_Number_Of_Intersecting_ObjectCells_In_Level1_In_Index 29 Total_Number_Of_Intersecting_ObjectCells_In_Level2_In_Index 1294 Total_Number_Of_Intersecting_ObjectCells_In_Level3_In_Index 29680 Total_Number_Of_Intersecting_ObjectCells_In_Level4_In_Index 251517 Total_Number_Of_Border_ObjectCells_In_Level0_For_QuerySample 1 Total_Number_Of_Border_ObjectCells_In_Level0_In_Index 60956 Total_Number_Of_Border_ObjectCells_In_Level1_In_Index 332 Total_Number_Of_Border_ObjectCells_In_Level2_In_Index 1640 Total_Number_Of_Border_ObjectCells_In_Level3_In_Index 2691 Total_Number_Of_Border_ObjectCells_In_Level4_In_Index 26225 Interior_To_Total_Cells_Normalized_To_Leaf_Grid_Percentage 0.004852925 Intersecting_To_Total_Cells_Normalized_To_Leaf_Grid_Percentage 0.288147586 Border_To_Total_Cells_Normalized_To_Leaf_Grid_Percentage 99.70699949 Average_Cells_Per_Object_Normalized_To_Leaf_Grid 405.7282349 Average_Objects_PerLeaf_GridCell 0.002464704 Number_Of_SRIDs_Found 1 Width_Of_Cell_In_Level1 2.8125 Width_Of_Cell_In_Level2 0.043945313 Width_Of_Cell_In_Level3 0.000686646 Width_Of_Cell_In_Level4 1.07E-05 Height_Of_Cell_In_Level1 5.625 Height_Of_Cell_In_Level2 0.087890625 Height_Of_Cell_In_Level3 0.001373291 Height_Of_Cell_In_Level4 2.15E-05 Area_Of_Cell_In_Level1 1012.5 Area_Of_Cell_In_Level2 15.8203125 Area_Of_Cell_In_Level3 0.247192383 Area_Of_Cell_In_Level4 0.003862381 CellArea_To_BoundingBoxArea_Percentage_In_Level1 1.5625 CellArea_To_BoundingBoxArea_Percentage_In_Level2 0.024414063 CellArea_To_BoundingBoxArea_Percentage_In_Level3 0.00038147 CellArea_To_BoundingBoxArea_Percentage_In_Level4 5.96E-06 Number_Of_Rows_Selected_By_Primary_Filter 60956 Number_Of_Rows_Selected_By_Internal_Filter 0 Number_Of_Times_Secondary_Filter_Is_Called 60956 Number_Of_Rows_Output 2 Percentage_Of_Rows_NotSelected_By_Primary_Filter 71.66655821 Percentage_Of_Primary_Filter_Rows_Selected_By_Internal_Filter 0 Internal_Filter_Efficiency 0 Primary_Filter_Efficiency 0.003281055

「Base_Table_Rows 215138」はあまり意味がありません。テーブルには215,000ではなく107,000行があります

レンダリングすると、データセットは次のようになります: (ソース: norman.cx )代替テキスト

さらなる研究:

このデータを使用したプライマリ フィルターのパフォーマンスの悪さに、私は引き続き戸惑っています。そこで、データがどのように分割されるかを正確に確認するためのテストを行いました。元の分割されていない機能を使用して、テーブルに「セル」列を追加しました。次に、16 のクエリを実行して、フィーチャが 4x4 グリッド内でいくつのセルにまたがっているかをカウントしました。そこで、各セルに対して次のようなクエリを実行しました。

次に、表の「セル」列を見ると、データ セット全体で、4x4 グリッド内の複数のセルと交差するフィーチャは 672 個しかありません。では、まったく文字通り、幅 200 マイルの小さな四角形を参照するクエリに対して、プライマリ フィルターが 60,000 個のフィーチャを返すことができるでしょうか。

この時点で、これらの機能に対する SQL Server のパフォーマンスよりも優れた独自のインデックス作成スキームを作成できるようです。

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

sql-server - SQLサーバーを使用した陸地の2点間の距離.

陸地のみを考慮して、SQL Server 2008 内の 2 点間の最短距離を計算しようとしています。

STDistance() と一緒に地理データ型を使用して、カラスが飛ぶときにポイント x からポイント y までの距離を計算しましたが、これは私が避けようとしている海を横切ることがあります。

また、関心のある陸塊の境界の周りにポリゴンを作成しました。

より簡単な解決策がない限り、STDistance が常にポリゴン内に留まるようにするには、これら 2 つの方法を組み合わせる必要があると思います。

アドバイスをありがとう

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

sql-server - SQL Server CEは空間データ型の同期をサポートしていますか?

SQLServerはSQLServerCEへのレプリケーションをサポートしていますか?ドキュメントでは、SQLサーバーCEはst_geometryタイプをサポートしていないようです。

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

oracle - Oracle Lite Database 10gは空間データ型をサポートしていますか?

サポートデータ型に関するオンラインドキュメントが見つかりませんか?

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

oracle - Oracle XEへのシェープファイルのインポート

Ordnance Survey Boundary-Line オープンソース セットで提供される Shapefiles の 1 つを Oracle XE にインポートしようとしています。

http://data.gov.uk/dataset/os-boundary-line

残念ながら、多くのグーグルにもかかわらず、これを行う方法が完全にわかりません。

ポインタやヒント、またはガイドへのリンクを持っている人はいますか?

乾杯

ジェームズ

0 投票する
5 に答える
21220 参照

java - org.hibernate.MappingException:JDBCタイプの方言マッピングなし:2002

ジオメトリフィールドタイプを取得するためにJPAnativeQueryorg.hibernate.MappingException: No Dialect mapping for JDBC type: 2002を実行しようとすると取得します。

私はOracleとを使用していますorg.hibernatespatial.oracle.OracleSpatial10gDialect

ジオメトリフィールドは次のようにマップされます。

これは、spring+struts2での休止状態の構成です。

これはどのように解決できますか?または、ジオメトリのタイプを強制してこれを機能させる方法はありますか?

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

solr - Spatial Solr クエリで計算された距離を取得できません

このプラグインを使用して、Solr で空間クエリを許可しています。ドキュメントに記載されている手順に従いましたが、空間クエリは正常に機能しています。

ここで、計算された距離を取得したいと思います。solrconfig.xml ファイルに次の行を追加しました。

そして、「geodistance」コンポーネントを標準のリクエスト ハンドラーに追加しました。

次に、「q={!spatial lat=41.641184 long=-0.894032 radius=2 calc=arc unit=km} cafeteria」などのクエリを実行すると、機能しますが、初回のみです。同じクエリを再度実行すると、次のエラーが発生します。

クエリが初めて機能し、「geo_distance」フィールドで計算された距離を取得するため、エラーがどこにあるのかわかりません。しかし、クエリを繰り返すと、NullPointerException が発生します。