当前位置: 首页 > Web前端 > HTML

ArcGISQGIS学习2:图层如何只显示需要的部分几何表面数据(有最新坐标边界下载全国省市县城乡镇)

时间:2023-03-27 23:38:07 HTML

前言当我们打开一个SHP文件时用GIS软件,它会显示所有的几何图形,如果我只想显示部分数据,其余的不显示,有以下几种操作方法。我们可以通过将需要显示的几何面复制到另一层来单独显示,但是如果要显示的区域发生变化,就得重新做,不是很方便。下面将我学习到的解决方案记录下来:ArcGIS和QIGS都支持对图层中的数据进行过滤,提供类似SQL的查询语句,只需要写查询条件图层就可以只显示匹配到的人脸。准备好SHP数据,到GitHub开源库下载最新版全国省市区界线数据,地址:https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov,支持在线预览(黄金地图,ECharts),这个开源库的频繁更新和维护,各方面都支持的很好,可以做到乡镇级无乱码。下载解压得到ok_geo.csv文件,该文件包含全国各省市边界数据。这个开源库提供了一个转换工具,可以把这个csv文件转换成shp、geojson、sql等格式,同理下载。打开转换工具,选择工具中的ok_geo.csv文件,因为里面包含了全国所有省市的数据,比较大,我们先导出武汉所有区县的数据进行演示;工具的城市名称前缀填写“湖北省武汉市”(末尾加一个空格,否则武汉的边界也会被导出)。点击转换工具的转换为shp文件按钮,耐心等待一会,武汉市所有区县数据将导出成功,shp文件与ok_geo.csv在同一目录下。ArcMap筛选在ArcMap中打开导出的武汉SHP文件:右键图层打开图层属性面板,切换到查询定义(DefinitionQuery):ArcMap查询定义填写name='HanyangDistrict'或name='硚口区'条件,表示过滤掉属性表中name列等于汉阳区或硚口区的数据。单击确定后,将查询要显示的数据。不匹配的数据不会全部显示,只显示匹配的数据:如何写更多查询条件请参考下文。QGIS的筛选在QGIS中打开导出的武汉SHP文件:右击图层打开过滤(Filter)菜单,输入查询定义(QueryBuilder):在QGIS查询定义中填写name='HanyangDistrict'或name='硚口区'条件,表示过滤掉属性表中name列等于汉阳区或硚口区的数据。单击确定后,将查询要显示的数据。不匹配的数据不会全部显示,只显示匹配的数据:查询条件怎么写查询条件类似于SQL的where查询条件,支持andorlike=>100andarea<200orarea=999.and组合优先级高于or组合,可以用()来控制优先级,例如:(name='A'orname='B')andarea<200,会发现name为A或B,且面积小于200如果去掉括号,则变为:查找所有名为A的数据,和名为B的数据,且面积小于200。使用like进行字符串的模糊查询,例如:namelike'%small%'查找名称中包含小字符的所有数据;namelike'张%'查找名称以张开头的所有数据;namelike'%small'查找名称中以小字符结尾的所有数据角色。【结束】