問題タブ [dotspatial]
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.
shapefile - 形状名の取得方法
DotSpatial を使用して Shapefile を として開くと、IFeatureSet
内に形状のコレクションが表示されFeatureSet
、これらの形状には属性のコレクションがあります。しかし、形状に関連付けられた名前を見つける明白な方法がわかりませんか?
たとえば、次のコードがあるとします。
Shape
オブジェクトにブレークポイントを設定してこのコードをデバッグすると、属性のコレクションが表示されます。私が使用している例では、各形状に 12 の属性があります。これらの属性の 1 つが形状の名前であると考えられることがわかります (この例では、エクアドルの州を見ています)。しかし、これらの属性のどれが形の名前、この場合は州の名前です。
編集
最初の形状で確認できる使用可能な属性の例を次に示します。
ざっと見てみると、必要なのはインデックス 4 の属性だと思いますが、プログラムでこれを見つけるにはどうすればよいでしょうか。
さらに編集
データをさらに調べてみると、属性のラベルが の DataTable 列名である可能性があるように見えますIFeatureSet
。
ただし...これらの形状をインポートしたい場合、これらのどれをプログラムで選択しますか? インポートを行う人が手動で正しいものを選択できるようにする唯一の方法はありますか?
dotspatial - DotSpatial を使用したストリームからの読み取り
DotSpatial を使用して、特定のファイルからではなく、ストリーム (またはストリームのセット) からデータを読み取ることは可能ですか? 私はそれを包括的な ZIP ファイルに向けることができ、それがうまくいくことを望んでいました。
Shapefile.Open()
とメソッドを見てきましたが、Shapefile.OpenFile()
ZIP ファイルや複数のストリームを開くものはないようです。
c# - DotSpatial シェープファイルでのパフォーマンスが非常に遅い
特定のシェープファイルからすべてのフィーチャ データを読み込もうとしています。この場合、DotSpatial を使用してファイルを開き、機能を繰り返し処理しています。この特定のシェープファイルのサイズはわずか 9 MB で、dbf ファイルは 14 MB です。ループする機能はおよそ 75,000 あります。
これはすべてコンソール アプリを介してプログラムで行われるため、レンダリングなどは一切行われないことに注意してください。
形状ファイルをロードするときに、再投影してから繰り返します。再投影の読み込みは非常に高速です。ただし、コードが foreach ブロックに到達するとすぐに、データの読み込みに丸 2 分近くかかり、VisualStudio でのデバッグ時に約 2 GB のメモリを使用します。これは、かなり小さいデータ ファイルに対して、非常に過剰に思えます。
コマンド ラインから Visual Studio の外部で同じコードを実行しましたが、時間はまだ約 2 分で、プロセスには約 1.3 GB のメモリが必要です。
とにかくこれをスピードアップする方法はありますか?
以下は私のコードです:
興味深いことに、VS イミディエイト ウィンドウを使用すると、非常に高速で、まったく遅延がありません...
c# - データベースからシェープファイルを作成した後、ジオメトリ座標は逆順になります
「hitbgt」という名前のデータベース テーブルがあります。ジオメトリ値を含む列名「the_geom」があります。db テーブルからデータをデータテーブルとして取得し、それに基づいてシェープファイルを作成します。コードは以下のとおりです........
すべて正常に動作します。しかし、シェープファイルからgeomデータを取得すると、ポリゴン座標値はデータベースのように時計回りに逆に表示されます。
例: DB 形状: "POLYGON((35 10, 45 45, 15 40, 10 20, 35 10),(20 30, 35 35, 30 20, 20 30))" 形状形状: "MULTIPOLYGON(((35 10 ,10 20,15 40,45 45,35 10),(20 30,30 20,35 35,20 30)))"
どなたか助けてください…………
次のようなものを比較する必要があるため、これに悩まされています.......
c# - Dotspatial のカスタム レイヤーに機能を追加するにはどうすればよいですか?
ユーザーがコンボボックスでレイヤー名を選択するカスタムレイヤーに、ポイント、ライン、またはポリゴンとしてフィーチャタイプを追加する必要があります。現時点では、すべての機能が最後に作成されたレイヤーに挿入されます
これは私のコードです:
c# - ポリゴン上にフィーチャ (ポイント) グリッドを作成する
C# を使用して GIS ベースのデスクトップ アプリケーションに取り組んでいます。このプロジェクトでは dotpatial ライブラリを使用しています。
次に、ポリゴン上にフィーチャのグリッドを作成する必要があります。このグリッド セル (長方形) は20*20 メートル四方である必要があります。
私はそれに取り組み、グリッドを作成できましたが、セルサイズに関する問題に直面しています。ポリゴン サイズが変更されるたびに、セル サイズも縮小されます。私のコード。
小さいサイズのポリゴンでこのコードを試してみると、グリッド セルのサイズも小さくなりました。
私のアプローチが正しくないことはわかっているので、それを検索していくつかのツールを入手しました。お気に入り
https://gis.stackexchange.com/questions/79681/creating-spatially-projected-polygon-grid-with-arcmap
しかし、C# で作成したいのですが、アルゴリズムやその他の役立つ資料が見つかりません。
あなたの知識を共有してください。ありがとう