You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在QGIS中从国家全图提取城市?含巴基斯坦卡拉奇提取过滤问询

如何在QGIS中提取城市要素及卡拉奇市地图数据

我来帮你一步步解决这两个QGIS操作问题,都是日常处理矢量数据的常用技巧:

一、从完整国家地图数据中提取城市要素

假设你手里的国家地图是包含多类地理要素的矢量数据(比如Shapefile、GPKG这类常见格式),按以下步骤操作:

  • 第一步:加载数据到QGIS
    打开QGIS后,通过Layer > Add Layer > Add Vector Layer导入你的国家地图数据。加载完成后,图层会出现在左侧的图层面板里。

  • 第二步:定位城市要素的属性/层级
    很多官方或开源地图数据(比如OSM数据)会按行政层级划分要素:

    • 如果是分层数据,直接找命名为CitiesUrban Areas或者类似的图层就行,这就是现成的城市要素。
    • 如果是单图层包含所有行政级别(比如国家、省、市都在一个图层里),右键图层选择Open Attribute Table,查看属性字段:
      • 重点看admin_level(OSM数据常用,城市级一般是admin_level=8,具体看数据定义)、type(可能标注为city)、name这类字段,判断哪些记录对应城市要素。
  • 第三步:提取城市要素
    有两种高效方法:

    1. 属性筛选后导出
      • 在属性表点击Select features using expression(那个ε形状的按钮),输入筛选表达式,比如"type" = 'city'或者"admin_level" = '8',点击Select Features选中所有城市记录。
      • 右键原图层,选择Export > Save Selected Features As,选好保存格式和路径,点击OK就能得到单独的城市要素图层。
    2. 用Processing工具批量提取
      • Ctrl+Alt+T调出Processing Toolbox,搜索Extract by Attribute工具。
      • 选择目标图层,设置筛选字段(比如type)、运算符(比如=)和匹配值(比如city),指定输出路径后点击Run,工具会自动帮你提取出符合条件的要素。

二、从巴基斯坦全图中提取卡拉奇市地图数据

针对巴基斯坦的行政数据,操作更精准一些:

  • 第一步:确认卡拉奇的属性标识
    加载巴基斯坦全图后,打开属性表,找和卡拉奇相关的字段:

    • 一般name字段会有英文Karachi或者乌尔都语的对应名称;
    • 部分数据会用admin_level区分层级,卡拉奇作为大都会区,可能对应admin_level=6(具体要看你的数据来源,比如OSM数据里卡拉奇的层级是admin_level=6)。
  • 第二步:筛选并导出卡拉奇
    方法一:快速搜索选择

    • 在属性表顶部的搜索框(放大镜图标)输入Karachi,找到对应的记录后选中,右键图层选择Export > Save Selected Features As,保存成新图层即可。
      方法二:精准表达式筛选
      如果担心有重名或者需要更严格的筛选,用表达式工具:
    • 输入"name" ILIKE '%Karachi%'(ILIKE不区分大小写,避免大小写匹配问题),或者结合层级"admin_level" = '6' AND "name" = 'Karachi',选中后导出即可。
  • 第三步:(可选)合并子区域
    如果你的数据里卡拉奇被分成了多个子分区(比如市区的各个行政区),可以用Merge Vector Layers工具合并成完整边界:

    • 在Processing Toolbox搜索Merge Vector Layers,选择所有属于卡拉奇的子区域图层,设置输出路径后运行,就能得到一个完整的卡拉奇市边界图层。

内容的提问来源于stack exchange,提问作者Kamran Tariq

火山引擎 最新活动