Python与开源GIS:使用OGR生成几何要素对象
来源:互联网 发布:windows安装程序 编辑:程序博客网 时间:2024/06/13 11:39
前面部分我们详细地介绍了如何读取矢量数据,包括数据源、图层、要素、几何形状、字段属性等各个部分。
下面来看一下如何使用OGR来创建矢量数据,亦即使用OGR写GIS矢量文件。首先先看一下写文件的示意。在这里先不对这个图做太多的解释,但是在后面介绍各个部分的时候,请自行参考此图。
建立空的geometry对象:
org.Geometry
ogr中提供了不同的类型,常用的有:ogr.wkbPoint,ogr.wkbLineString,ogr.wkbPolygon。
定义各种不同的geometry使用的方法是不一样的。在构建这三种不同的要素时,要注意使用的格式。
创建点要素
下面我们先来看一下如何创建一个点。注意,此时只是在内存中将对象创建出来,跟文件没有关系。
# -*- coding: utf-8 -*-from osgeo import ogrpoint = ogr.Geometry(ogr.wkbPoint)point.AddPoint(10,20)print(type(point))print(point)
注意,向point中添加多个点,并不会出错,但最后的结果只会用最后添加的点。
创建线要素
新建Line的方法与点基本一致。与点不同的是,线需要添加多个点。
from osgeo import ogrline = ogr.Geometry(ogr.wkbLineString)line.AddPoint(10,20)line.AddPoint(20,30)line.AddPoint(10,30)print(type(line))print(line)可以使用线对象的SetPoint方法来修改点的坐标,譬如:
line.SetPoint(1,50,50)print(line)
另外,还有其他一些有用的函数:
统计所有点的数目:
读取0号点的x坐标和y坐标
创建多边形要素
创建多边形要素与创建点和线的方法的区别就比较大了。
新建多边形,首先要新建环(ring),然后把环添加到多边形对象中。
那么怎样创建一个ring呢?这个与创建线比较类似:先新建一个ring对象,然后向里面逐个添加点。
from osgeo import ogrring = ogr.Geometry(ogr.wkbLinearRing)ring.AddPoint(10,10)ring.AddPoint(50,0)ring.AddPoint(50,50)ring.AddPoint(0,10)
与创建线不同的是,ring是需要封闭的,这可以使用CloseRings()方法,或者将最后一个点的坐标设置成与第一个点相同。一般情况下,最好是使用CloseRings()方法。
然后,使用下面的语句,将ring对象添加到多边形中。
对于polygon对象,没法直接打印它里面的坐标,而是需要先获取它其中的几何对象,也就是ring。
这样,我们就学会了使用OGR创建最简单的点、线、多边三种几何形状了。
- Python与开源GIS:使用OGR生成几何要素对象
- Python与开源GIS:获取要素信息
- Python与开源GIS:根据属性条件选择要素
- OGR + Python 要素的描述
- Python 中使用 ogr 生成 shape 文件时的中文乱码问题
- Python地理数据处理之GDAL/OGR使用
- Python地理数据处理之GDAL/OGR使用
- 【GIS】GDAL之OGR入门
- GDAL/OGR 地理要素样式(二)
- GDAL/OGR 地理要素样式(三)
- GDAL/OGR 地理要素样式(四)
- GIS地图开发之地图交互操作(增加、删除要素)与要素信息显示
- GIS地图开发之地图交互操作(增加、删除要素)与要素信息显示
- OGR与CSEG AT
- three.js 02-02 之使用几何与网格对象
- gdal - ogr简单对象模型
- gdal - ogr简单对象模型
- GIS中的计算几何
- html---基础(1)
- struts2 ajax demo
- hdu 1466 计算直线的交点数
- OD环境搭建
- libpng用法,读写PNG图像
- Python与开源GIS:使用OGR生成几何要素对象
- Linux信号通讯
- hdu 2050 折线分割平面
- LeetCode | Clone Graph
- Eclipse 实用配置整理
- zend framework 运行原理(2)
- ubuntu下设定系统locale,支持中文zh_CN.UTF-8
- 10 款最好的远程桌面软件
- XAMPP Apache 配置多端口和多域名方法