如何更改shapefile中特征的顺序?


18

我有一个shapefile,我想更改特征的顺序。那可能吗?

我想对shapefile中的特征进行排序,因为我将这个shapefile嵌入了移动应用程序中。该应用程序将显示功能列表,尽管我可以在加载时进行排序,但我更喜欢对它们进行排序。


4
目标是合法的,其意思不是。如果您需要对它们进行排序,请使用查询结果,而不要假设它们已经并且将保持排序。
GuillaumeC

Answers:


6

您始终可以在ArcMap中打开属性表,然后右键单击列标题,然后为单个字段选择“升序... /降序...”。

对于多个字段,您应该单击“高级排序”以选择多个字段。

注意:例如,使用上述方法时,基于当前排序(临时的,仅存储在此map / mxd中)添加顺序ID字段将按要素类的原始OID / ObjectID进行排序。

有可用的ArcScripts可以对记录进行永久排序并输出新的shapefile:http ://arcscripts.esri.com/details.asp?dbid=16771

我确实希望当您声明“功能的顺序”时,这是在属性表中找到的顺序,而不是目录/符号级别的表的绘制顺序。



7

这是使用GDAL / OGR命令行工具重写新的排序文件shapefile的解决方案ogr2ogr

例如,shapefile orig.shp具有volume要排序的数字字段。此特定的SQL语句进行反向排序(带有DESC),以便volume在具有较小值的特征之前(下方)绘制具有较大值的特征:

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

5

如果您有权访问arcinfo许可证,则可以使用(数据管理工具箱)中的`` 排序''将记录写入新的shapefile或基于gdb fc的空间或属性排序


不幸的是,它仅适用于FGDB,而不适用于形状
tato

1
tato,该工具与fgdb或shapefile一起用作输入和输出,我不知道您上面的注释是什么意思。
gotchula 2011年


2

一种非常非常快速且简便的方法来对shapefile图层进行排序(使用各种字段)。

1-将shapefile导出为CSV(选择良好的分隔符,例如分号),然后使用“图层选项”->“ AS WKT”添加GEOMETRY

在此处输入图片说明

2-使用LIBREOFFICE(calc)打开file.csv并使用MENU-> DATA-> SORT(非常直观,功能强大且非常快速(使用排序键,升序和降序选项和3列等3列即时排序50000功能)有一个非常慢的笔记本;))

3-从LIBREOFFICE(计算)再次将文件另存为“文本CSV”(标记为“编辑过滤器设置”,然后将分隔符选择为“分号”,从libreoffice发出警告无关紧要,另存为CSV,然后选择“分号”作为分隔符)

4-在Qgis中,从“添加层”菜单->添加定界符文本层中打开新的file.csv(并进行排序)。

优点:-非常快,可以从各个字段中进行排序-与UTF_8编码数据兼容

缺点:-需要图书馆服务(但它是开源软件)

使用控制台(BASH)进行排序的另一种方法(支持点2和3,并且最快)

  • 打开控制台并转到您拥有file.csv的位置

    假设您要使用密钥对文件进行排序:

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

    所以命令将是:

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

    笔记:

    • 您可以为需要添加的每个列号“ n”(字段)添加-kn,n到“排序键”
    • 在每n,n之后添加“ r”将以反向模式(下降)进行排序
    • 必须将带有-t参数的字符分隔符传递到csv文件中

使用bash(控制台)在没有LibreOffice的情况下进行排序的另一种方法:
Juanma Font

-3
  1. 将数据导出为CSV
  2. 使用Excel打开,转到“数据” ----“排序” ---展开选择,然后完成
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.