シェープファイル内のフィーチャーの順序を変更する方法は?


18

シェープファイルがあり、機能の順序を変更したい。それは可能ですか?

このシェープファイルをモバイルアプリに埋め込むので、シェープファイルの機能を並べ替えます。アプリには機能のリストが表示されます。ロード時に並べ替えを行うことはできますが、並べ替えを希望します。


4
目標は正当であり、平均はそうではありません。並べ替えが必要な場合は、クエリの結果を使用します。並べ替えられたままであり、並べられたままになるとは思わないでください。
ギヨーム

回答:


6

ArcMapで属性テーブルをいつでも開くことができ、列ヘッダーを右クリックして、単一フィールドの[昇順/降順で並べ替え...]を選択します。

複数のフィールドの場合、代わりに[詳細な並べ替え]をクリックして複数のフィールドを選択します。

注:たとえば、上記のメソッドを使用する場合、現在の並べ替え(一時的で、このマップ/ mxdにのみ保存されます)に基づいてシーケンシャルIDフィールドを追加すると、フィーチャクラスの元のOID / ObjectIDによって順序付けられます。

レコードを永続的にソートし、新しいシェープファイルを出力するArcScriptsが利用可能です:http ://arcscripts.esri.com/details.asp?dbid=16771

「機能の順序」を指定するとき、これが属性テーブルで見つかった順序であり、目次/シンボロジーレベルの描画順序ではないことを願っています。



7

GDAL / OGRコマンドラインツールを使用して、新しい並べ替えられたシェープファイルを書き換えるソリューションを次に示しますogr2ogr

たとえば、シェープファイルにorig.shpは、volume並べ替える数値フィールドがあります。この特定のSQLステートメントは、(DESC)を使用して逆ソートを実行するため、volume小さな値を持つフィーチャの前(下)に大きな値を持つフィーチャが描画されます。

ogr2ogr -sql "SELECT * FROM orig ORDER BY volume DESC" sorted.shp orig.shp

5

arcinfoライセンスにアクセスできる場合、(データ管理ツールボックス)で並べ替えを使用して、レコードを新しいシェープファイルまたはgdb fcベースの空間または属性の並べ替えに書き込みます


残念ながらそれはFGDBと、ない形で動作します
tato

1
tato、このツールは入力および出力としてfgdbまたはシェープファイルを使用します。上記のコメントの意味がわかりません。
-gotchula


2

シェープファイルレイヤーを並べ替える非常に高速で簡単な方法(さまざまなフィールドを使用)。

1-シェープファイルをCSV(セミコロンなどの適切なセパレーターを選択)にエクスポートし、「レイヤーオプション」->「AS WKT」を使用してGEOMETRYを追加します

ここに画像の説明を入力してください

2-LIBREOFFICE(計算)でfile.csvを開き、MENU-> DATA-> SORTを使用します(非常に直感的で強力かつ非常に高速(ソートキー、昇順および降順オプション、およびiノートブックが非常に遅い;))

3-LIBREOFFICE(calc)から再度ファイルを「テキストCSV」として保存します(「フィルター設定の編集」をマークし、セパレーターを「セミコロン」として選択します。libreofficeからの警告は関係ありません。

4-Qgisから、「レイヤーの追加」メニュー->区切り文字テキストレイヤーの追加から、新しいfile.csv(およびソート済み)を開きます。

長所:-非常に、非常に高速、さまざまなフィールドからソート-UTF_8エンコードされたデータで問題なく動作

短所:-LIBREOFFICEが必要です(ただし、オープンソースソフトウェアですか)

コンソール(BASH)を使用してソートする代替方法(ポイント2と3を置換し、最も高速です)

  • コンソールを開き、file.csvがある場所に移動します

    キーでファイルをソートするとします:

    field6(desc)+ field1(ascen)+ field3(desce)

    したがって、コマンドは次のようになります。

    sort -t ';' -k6,6r -k1,1 -k3,3r file.csv> file_sort.csv

    ノート:

    • 「ソートキー」に追加する必要があるすべての列番号「n」(フィールド)に-kn、nを追加できます
    • n、nごとに「r」を追加すると、リバースモードでソートされます(下降)
    • -t paramを使用してcsvファイルに使用される文字区切り文字を渡す必要があります

LibreOfficeを使用せずにbash(コンソール)を使用してソートする代替方法:
Juanma Font

-3
  1. データをcsvとしてエクスポート
  2. Excelで開き、データに移動----並べ替え---選択を展開して完了
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.