ogr 缓冲区_GDAL的几何操作

Date: 2015-08-13 12:43

Summary: 一段代码一个小功能,简单清晰又实用。翻译自英文的cookbook。Thanks the author for sharing us such a wonderful tutorial!!!

GDAL的几何操作

创建一个点

from osgeo import ogr

point = ogr.Geometry(ogr.wkbPoint)

point.AddPoint(1198054.34, 648493.09)

print point.ExportToWkt()

创建一条线

from osgeo import ogr

line = ogr.Geometry(ogr.wkbLineString)

line.AddPoint(1116651.439379124, 637392.6969887456)

line.AddPoint(1188804.0108498496, 652655.7409537067)

line.AddPoint(1226730.3625203592, 634155.0816022386)

line.AddPoint(1281307.30760719, 636467.6640211721)

print line.ExportToWkt()

创建多边形

from osgeo import ogr

# Create ring

ring = ogr.Geometry(ogr.wkbLinearRing)

ring.AddPoint(1179091.1646903288, 712782.8838459781)

ring.AddPoint(1161053.0218226474, 667456.2684348812)

ring.AddPoint(1214704.933941905, 641092.8288590391)

ring.AddPoint(1228580.428455506, 682719.3123998424)

ring.AddPoint(1218405.0658121984, 721108.1805541387)

ring.AddPoint(1179091.1646903288, 712782.8838459781)

# Create polygon

poly = ogr.Geometry(ogr.wkbPolygon)

poly.AddGeometry(ring)

print poly.ExportToWkt()

创建带洞的多边形

from osgeo import ogr

# Create outer ring 外环线

outRing = ogr.Geometry(ogr.wkbLinearRing)

outRing.AddPoint(1154115.274565847, 686419.4442701361)

outRing.AddPoint(1154115.274565847, 653118.2574374934)

outRing.AddPoint(1165678.1866605144, 653118.2574374934)

outRing.AddPoint(1165678.1866605144, 686419.4442701361)

outRing.AddPoint(1154115.274565847, 686419.4442701361)

# Create inner ring 内环线

innerRing = ogr.Geometry(ogr.wkbLinearRing)

innerRing.AddPoint(1149490.1097279799, 691044.6091080031)

innerRing.AddPoint(1149490.1097279799, 648030.5761158396)

innerRing.AddPoint(1191579.1097525698, 648030.5761158396)

innerRing.AddPoint(1191579.1097525698, 691044.6091080031)

innerRing.AddPoint(1149490.1097279799, 691044.6091080031)

# Create polygon

poly = ogr.Geometry(ogr.wkbPolygon)

poly.AddGeometry(outRing)

poly.AddGeometry(innerRing)

print poly.ExportToWkt()

创建MultiPoint

from osgeo import ogr

multipoint = ogr.Geometry(ogr.wkbMultiPoint)

point1 = ogr.Geometry(ogr.wkbPoint)

point1.AddPoint(1251243.7361610543, 598078.7958668759)

multipoint.AddGeometry(point1)

point2 = ogr.Geometry(ogr.wkbPoint)

point2.AddPoint(1240605.8570339603, 601778.9277371694)

multipoint.AddGeometry(point2)

point3 = ogr.Geometry(ogr.wkbPoint)

point3.AddPoint(1250318.7031934808, 606404.0925750365)

multipoint.AddGeometry(point3)

print multipoint.ExportToWkt()

创建MultiLineString

from osgeo import ogr

multiline = ogr.Geometry(ogr.wkbMultiLineString)

line1 = ogr.Geometry(ogr.wkbLineString)

line1.AddPoint(1214242.4174581182, 617041.9717021306)

line1.AddPoint(1234593.142744733, 629529.9167643716)

multiline.AddGeometry(line1)

line1 = ogr.Geometry(ogr.wkbLineString)

line1.AddPoint(1184641.3624957693, 626754.8178616514)

line1.AddPoint(1219792.6152635587, 606866.6090588232)

multiline.AddGeometry(line1)

print multiline.ExportToWkt()

创建MultiPolygon

from osgeo import ogr

multipolygon = ogr.Geometry(ogr.wkbMultiPolygon)

# Create ring #1

ring1 = ogr.Geometry(ogr.wkbLinearRing)

ring1.AddPoint(1204067.0548148106, 634617.5980860253)

ring1.AddPoint(1204067.0548148106, 620742.1035724243)

ring1.AddPoint(1215167.4504256917, 620742.1035724243)

ring1.AddPoint(1215167.4504256917, 634617.5980860253)

ring1.AddPoint(1204067.0548148106, 634617.5980860253)

# Create polygon #1

poly1 = ogr.Geometry(ogr.wkbPolygon)

<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值