前言

当我们用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文件:

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

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

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

QGIS 的筛选

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

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

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

如何编写查询条件

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

字符串用'单引号括起来,比如:name='张三'name like '张%'

字段名称直接写或者用"双引号括起来,比如:"编号(数字)"=12345

andor进行多个条件组合查询,比如:面积>100 and 面积<200 or 面积=999

and组合比or组合优先级更高,可以用()来控制优先级,比如:(名称='A' or 名称='B') and 面积<200,会查找出名称为A或B,并且面积小于200的数据;如果去掉括号,就变成了:查找名称为A的所有数据,和名称为B并且面积小于200的数据。

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

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

【完】

最新文章

  1. css3圆环百分比,菜单栏定位导航
  2. 关于__int128
  3. iOS 设置系统屏幕亮度
  4. sudo -u hdfs hdfs balancer出现异常 No lease on /system/balancer.id
  5. 一种线程安全的handle
  6. 免费素材下载:iOS 8 矢量 UI 素材套件
  7. CSS3单位
  8. 关​于​h​i​b​e​r​n​a​t​e​中​双​向​外​键​关​联​o​n​e​-​t​o​-​o​n​e​的​p​r​o​p​e​r​t​y​-​r​e​f​=​的​问​题(转)
  9. iBatis 的简单入门
  10. Scut:从PackageReader分析客户端协议规则
  11. table操作:边框-斑马线-多表头-焦点高亮-自动求和
  12. mysql 密码过期问题 password_expired
  13. Linux 软件包安装管理
  14. 龟兔赛跑,杭电oj-2059
  15. 实例讲解webpack的基本使用第一篇
  16. label的作用是什么?是怎么用的?
  17. ListIterator
  18. 运用BT在centos下搭建一个博客论坛
  19. 简单工厂模式--java代码实现
  20. php之强制回调类型callable

热门文章

  1. ProxySQL 审计
  2. Kubernetes 监控--Grafana
  3. 俄罗斯的 HTTPS 证书问题
  4. 在 CentOS8/RHEL8 中配置 Rsyslog 服务器
  5. Qemu/Limbo/KVM镜像 最精简Linux+Wine,可运行Windows软件,内存占用不到70M,存储占用500M
  6. C#-9 委托
  7. ToroiseGit/GitBash 设置提交信息模板设置
  8. 把train数据集生成txt(test同理)
  9. Spring bean装配流程和三级缓存
  10. 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码