ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

前言

当我们用GIS软件打开一个SHP文件的时候,会显示出里面全部的几何图形,假如我只想要其中的一部分数据显示出来,其他的均不要显示,有那么几种操作方法。

我们可以通过把需要显示的几何面复制到另外一个图层里面来单独显示,但如果需要显示的区域一变,又要重新搞,不是很方便。

下面将记录一下我学到的解决方法: ArcGIS和QIGS都支持筛选一个图层中的数据,提供类似SQL一样的查询语句,只需编写查询条件图层就会只显示匹配到的面。

准备SHP数据

  1. 到GitHub开源库下载最新版的全国省市区边界数据,地址:https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov ,支持 在线预览(高德地图、ECharts),这个开源库经常更新维护 各方面都支持得很好,可以到乡镇级,也不乱码。
  2. 下载并解压得到 ok_geo.csv 文件,里面包含了全国的省市区边界数据,此开源库内提供了一个转换工具,开源将此csv文件转换成shp、geojson、sql等格式,也一样的下载一下。
  3. 打开转换工具,工具里面选择 ok_geo.csv 文件,因为里面是全国所有的省市区数据,比较大,我们先导出武汉的所有区县数据来演示;在工具的城市名前缀里面填写 "湖北省 武汉市 "(结尾带一个空格,不然武汉市的边界也会导出来)。
  4. 点击转换工具的 转成shp文件按钮,耐心稍等一会,武汉市的所有区县数据就导出成功了,shp文件在 ok_geo.csv 同一个目录里。

ArcMap 的筛选

在ArcMap中打开导出的武汉SHP文件:

ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

图层上右键打开图层属性面板,切换到查询定义(Definition Query):

ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

ArcMap查询定义里面填写了 name='汉阳区' or name='硚口区'条件,意思是筛选出属性表中 name列等于 汉阳区或者 硚口区的数据,点确定后就查询出需要显示的数据,不匹配的全部未显示,只会显示匹配到的:

ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

如何编写更多的查询条件请参考下面。

QGIS 的筛选

在QGIS中打开导出的武汉SHP文件:

ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

图层上右键打开过滤(Filter)菜单,进入查询定义(Query Builder):

ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

QGIS查询定义里面填写了 name='汉阳区' or name='硚口区'条件,意思是筛选出属性表中 name列等于 汉阳区或者 硚口区的数据,点确定后就查询出需要显示的数据,不匹配的全部未显示,只会显示匹配到的:

ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

如何编写查询条件

查询条件和 SQLwhere查询条件类似,支持 and or like = > < != 等运算符。

字符串用 '单引号括起来,比如: name='&#x5F20;&#x4E09;'name like '&#x5F20;%'

字段名称直接写或者用 "双引号括起来,比如: "&#x7F16;&#x53F7;&#xFF08;&#x6570;&#x5B57;&#xFF09;"=12345

andor进行多个条件组合查询,比如: &#x9762;&#x79EF;>100 and &#x9762;&#x79EF;<200 or 面积="999</code">&#x3002;<!--200-->

and组合比 or组合优先级更高,可以用 ()来控制优先级,比如: (&#x540D;&#x79F0;='A' or &#x540D;&#x79F0;='B') and &#x9762;&#x79EF;<200< code>&#xFF0C;&#x4F1A;&#x67E5;&#x627E;&#x51FA;&#x540D;&#x79F0;&#x4E3A;A&#x6216;B&#xFF0C;&#x5E76;&#x4E14;&#x9762;&#x79EF;&#x5C0F;&#x4E8E;200&#x7684;&#x6570;&#x636E;&#xFF1B;&#x5982;&#x679C;&#x53BB;&#x6389;&#x62EC;&#x53F7;&#xFF0C;&#x5C31;&#x53D8;&#x6210;&#x4E86;&#xFF1A;&#x67E5;&#x627E;&#x540D;&#x79F0;&#x4E3A;A&#x7684;&#x6240;&#x6709;&#x6570;&#x636E;&#xFF0C;&#x548C;&#x540D;&#x79F0;&#x4E3A;B&#x5E76;&#x4E14;&#x9762;&#x79EF;&#x5C0F;&#x4E8E;200&#x7684;&#x6570;&#x636E;&#x3002;<!--200<-->

like来进行字符串的模糊查询,比如:

  • name like '%&#x5C0F;%' 查找名字中包含 &#x5C0F;字的所有数据;
  • name like '&#x5F20;%' 查找名字为 &#x5F20;开头的所有数据;
  • name like '%&#x5C0F;' 查找名字为 &#x5C0F;结尾的所有数据。

【完】

Original: https://www.cnblogs.com/xiangyuecn/p/16935325.html
Author: xiangyuecn
Title: ArcGIS QGIS学习二:图层如何只显示需要的部分几何面数据(附最新坐标边界下载全国省市区县乡镇)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/797624/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球