矢量图层中要素的几何特征和属性特征的访问

news2024/9/25 13:15:25
打开QGIS Desktop 3.22.16,加载一个矢量图(Ex48/area.shp激活当前矢量图层
layer=iface.activeLayer()

 

 获取当前矢量图层矢量数据的个数

from qgis.utils import iface

layer = iface.activeLayer()  # 得到当前激活的图层
print(layer.id())
print(layer.featureCount())  # 返回矢量图层特征的数量

 

访问图层中的某一个要素

layer = iface.activeLayer()

for feat in layer.getFeatures():
    geom=feat.geometry()
    print(type(geom))
    print(geom.asWkt()[:10],geom.area(),geom.length())

 通过id访问要素

print('the layer has {} features.'.format(layer.featureCount()))
feat = layer.getFeature(10)  # id < featureCount
print(feat.id())
print(feat.isValid())  # return true

检查id是否有效:id要小于要素个数

 得到要素的属性信息

attr = feat1.attributes()

 提取多边形节点

vertices = list(geom.vertices())

 显示节点

def getgtypes():
    return 'point', 'linestring', 'polygon', 'multipoint', 'multilinestring', 'multipolygon'


def showgeoms(geoms, name="tmp", gtype=None):
    # 快速显示一串几何对象,gtype 如果是默认的则根据geoms生成相应的类型
    if gtype is None:
        gtype = geoms[0].constGet().geometryType() if isinstance(geoms[0], QgsGeometry) else geoms[0].geometryType()
        gtype = gtype.lower()
    if gtype not in getgtypes():
        raise Exception('gtype should be one of :{' + ','.join(getgtypes()) + '}' + 'input gtype is {}'.format(gtype))
    vl = QgsVectorLayer(gtype, name, "memory")
    pr = vl.dataProvider()
    feats = []
    for geom in geoms:
        feat = QgsFeature()
        feat.setGeometry(geom)
        feats.append(feat)
    pr.addFeatures(feats)
    QgsProject.instance().addMapLayer(vl)
    iface.zoomFull()
layer = iface.activeLayer()
feat = layer.getFeature(12) 
geom = feat.geometry()   
vertices = list(geom.vertices())
showgeoms(vertices, 'feat12')

上面的代码运行时没有效果。。。

参考:矢量图层中要素的几何特征和属性特征的访问​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机图形视觉基础

一、环境安装 1、anaconda安装 官网下载&#xff1a;Free Download | Anaconda 2、打开anaconda prompt测试是否安装成功 输入conda env list命令显示虚拟环境清单即可 二、创建开发虚拟环境 1、创建python3.8虚拟环境 conda create --name demo_py3.8 python3.8 2、激…

渠道窜货怎么解决

品牌渠道中的常见问题有哪些&#xff1f; 低价、窜货是品牌需要治理的渠道常见问题&#xff0c;一般说到窜货就会提到低价&#xff0c;因为这两者是密不可分的&#xff0c;低价会带来窜货&#xff0c;窜货也必然有低价的影响&#xff0c;所有违规行为的背后&#xff0c;都是有…

Unity - 制作package 插件包

1.将制作的插件包代码放置一个根目录下 2.在跟目录下创建package.json文件 //package.json {"name": "com.unity.customlibrary", //插件包名:com.组织名.包名"displayName": "CustomLibrary", //显示的插件名"v…

程序员行业有必要考PMP吗?

首先&#xff0c;给大家简单普及一下什么是PMP&#xff1f; PMP(Project Management Professional)指项目管理专业人士&#xff08;人事&#xff09;资格认证。美国项目管理协会&#xff08;PMI&#xff09;举办的项目管理专业人员&#xff08;PMP&#xff09;认证考试在全球1…

海思Hi3861L开发二-SDK编译与下载

一、简介 上篇文章,我们介绍了海思Hi3861L的环境搭建,那这篇文章,我们就开始SDK的编译与下载吧。 准备: SDK:https://download.csdn.net/download/qq_26226375/88245580 开发环境:海思Hi3861L开发一-环境搭建_t_guest的博客-CSDN博客 二、SDK介绍 将SDK解压后,会出现如…

【Java架构-包管理工具】-Maven基础(一)

本文摘要 Maven作为Java后端使用频率非常高的一款依赖管理工具&#xff0c;在此咱们由浅入深&#xff0c;分三篇文章&#xff08;Maven基础、Maven进阶、私服搭建&#xff09;来深入学习Maven&#xff0c;此篇为开篇主要介绍Maven概念、模型、安装配置、基本命令 文章目录 本文…

2023-8-24 模拟堆

题目链接&#xff1a;模拟堆 #include <iostream> #include <string.h>using namespace std;const int N 100010;int h[N], ph[N], hp[N], Size;void heap_swap(int a, int b) {swap(ph[hp[a]], ph[hp[b]]);swap(hp[a], hp[b]);swap(h[a], h[b]); }void down(in…

基于大数据+django+mysql的学习资源推送系统的设计与实现(含报告+源码+指导)

本系统为了数据库结构的灵活性所以打算采用MySQL来设计数据库&#xff0c;而Python技术&#xff0c; B/S架构则保证了较高的平台适应性。文中主要是讲解了该系统的开发环境、要实现的基本功能和开发步骤&#xff0c;并主要讲述了系统设计方案的关键点、设计思想。 由于篇幅限制…

Bigemap软件常见实操疑问解答

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP Bigemap gis office 国产地图编辑工具作为一个大众化软件&#xff0c;他的操作其实是相对简单的&#xff0c; 可操作的功能也非常广泛&#xff0c; 所以就会有各行各业…

【uni-app】压缩图片并添加水印

总体思路 dom 结点 这里的 cvHeight 和 cvWidth 初始时要设置为你后续需要压缩后的最大宽高。假设我们在图片上传后图片最大为 350 * 350 <u-upload :fileList"baseInfoFormData.entrustFileList" afterRead"afterFileRead" multiple></u-uploa…

2023前端求职经历回顾及面试题总结

文章目录 前言一、求职经历二、前端面经1. 投简历的正确打开方式2. 面经及面试题复盘外企面经、面试题大厂面经、面试题面试中的笔试有三种笔试题 给同行的温馨提示我的其他热门文章 前言 2023 年的春节之前&#xff0c;几乎没有公司招人&#xff0c;直到 2023年2月10日 左右&a…

科技资讯|苹果Apple Watch新专利,可根据服装、表带更换表盘颜色

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果公司近日获得了一项 Apple Watch 相关的技术专利&#xff0c;最大的亮点在于配备颜色采样传感器&#xff0c;可以根据表带、服装自动变幻变盘颜色和主题。 Apple Watch 正面配备颜色采样传感器&am…

Python快速入门体验

Python快速入门体验 一、环境信息1.1 硬件信息1.2 软件信息 二、Conda安装2.1 Conda介绍2.1.1 Conda简介2.1.2 Conda、Anaconda及Miniconda及的关系 2.2 Conda安装包下载2.2.1 Miniconda下载2.2.2 Anconda下载 2.3 Conda安装2.3.1 Miniconda安装2.3.2 Anconda安装 2.4 Conda初始…

微信小程序的springboot实现 个人行程日程安排系统

本站后台采用Java的springboot框架进行后台管理开发&#xff0c;可以在浏览器上登录进行后台数据方面的管理&#xff0c;MySQL作为本地数据库&#xff0c;微信小程序用到了微信开发者工具&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特…

openCV实战-系列教程5:边缘检测(Canny边缘检测/高斯滤波器/Sobel算子/非极大值抑制/线性插值法/梯度方向/双阈值检测 )、原理解析、源码解读

1、Canny边缘检测流程 Canny是一个科学家在1986年写了一篇论文&#xff0c;所以用自己的名字来命名这个检测算法&#xff0c;Canny边缘检测算法这里写了5步流程&#xff0c;会用到之前《openCV实战-系列教程》的内容。 使用高斯滤波器&#xff0c;以平滑图像&#xff0c;滤除…

揭开Android系统启动的神秘面纱

当有人问我们android中app启动流程的时候&#xff0c;我们总是会提到zygote。but&#xff0c;zygote又是从何而来&#xff1f;由此问题我想到了android系统的启动流程&#xff0c;zygote肯定是在系统初始化时创建的一个进程。带着这个疑问我去查询了一些android系统启动流程的资…

Linux配置nginx反向代理

在云服务器上部署高并发的服务&#xff0c;使用Nginx作为反向代理是一种常见的做法&#xff0c;可以实现流量分发、负载均衡&#xff0c;同时提升系统的可靠性和性能。 步骤概览&#xff1a; 安装Nginx&#xff1a; 确保服务器已安装Nginx。若未安装&#xff0c;可使用适用于你…

【c语言】文件操作 万字详解

目录 一&#xff0c;为什么使用文件 二&#xff0c;什么是文件 1&#xff0c;程序文件 2&#xff0c;数据文件 3&#xff0c;文件名 三&#xff0c;文件的打开和关闭 1&#xff0c;文件指针 2&#xff0c;文件的打开和关闭 四&#xff0c; 文件的顺序读写 1&#xff0c;顺序…

机器人制作开源方案 | 桌面级机械臂--本体说明+驱动及控制

一、本体说明 1. 机械臂整体描述 该桌面级机械臂为模块化设计&#xff0c;包含主机模块1个、转台模块1个、二级摆动模块1个、可编程示教盒1个、2种末端执行器、高清摄像头&#xff0c;以及适配器、组装工具、备用零件等。可将模块快速组合为一个带被动关节的串联3自由度机械臂…

用Python搭建个让你呼吸顺畅-ChatGPT

目录 ChatGPT使用时可能会遇到 1.请待命&#xff0c;我们正在检查您的浏览器... 2. 访问被拒绝。抱歉&#xff0c;您已被阻止 3. ChatGPT 目前已满负荷运转 4. 此内容可能违反我们的内容政策。 5.出了点问题。 6. 蹦字慢吞吞&#xff0c;卡顿不流畅&#xff0c;不知道的…