欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap FreeTalk
   您现在位于: 首页技术专栏开源GIS → 正文
用Python作GIS:炒菜篇
08-08-04 10:55:45 作者:columbus2 出处:http://www.cnblogs.com/columbus2
肆:炒菜篇

1、通过之前介绍的读取shape文件的py脚本,以下面方式将坐标值转换成wkb格式列表
def ShpToCoord(fileIn):
shpFile=ogr.Open(fileIn)
shpLayer=shpFile.GetLayer()
shpExtent=shpLayer.GetExtent()
frame.sketch.SetExtent(shpExtent)
#print shpExtent
shpFeature=shpLayer.GetNextFeature()
while shpFeature:
geoFeature=shpFeature.GetGeometryRef()
geoWKB=geoFeature.ExportToWkb()
geoList=WkbUnPacker(geoWKB)
if geoList[1]==1:
tmpList=[]
tmpList.extend(geoList[2])
frame.sketch.GetLines(tmpList,'D')
#print 'single dot'
if geoList[1]==2:
tmpList=geoList[2].tolist()
frame.sketch.GetLines(tmpList,'L')
#print 'single polyline'
if geoList[1]==3:
tmpList=geoList[2][0].tolist()
tmpList.extend(tmpList[:2])
frame.sketch.GetLines(tmpList,'P')
#print 'single polygon'
if geoList[1]==4:
for i in range(len(geoList[2])):
tmpList=[]
tmpList.extend(geoList[2][i])
frame.sketch.GetLines(tmpList,'D')
#print 'multi dots '+str(len(geoList[2]))
if geoList[1]==5:
for i in range(len(geoList[2])):
tmpList=geoList[2][i].tolist()
frame.sketch.GetLines(tmpList,'L')
#print 'multi polylines '+str(len(geoList[2]))
if geoList[1]==6:
for i in range(len(geoList[2])):
tmpList=geoList[2][i][0].tolist()
tmpList.extend(tmpList[:2])
frame.sketch.GetLines(tmpList,'P')
#print 'multi polygons '+str(len(geoList[2]))
else:
pass
shpFeature=shpLayer.GetNextFeature()

2、接下来建立窗口,初始化工作包括:
def __init__(self, parent, ID):
wx.Window.__init__(self, parent, ID)
self.SetBackgroundColour("White")#底色
self.color = "Black"#边线颜色
self.brush = wx.Brush("Blue")#填充颜色
self.thickness = 2#边线粗细
self.pen = wx.Pen(self.color, self.thickness, wx.SOLID)#1 创建一个wx.Pen对象
self.lines = []#存储一个图层坐标
self.curLine = []#存储一个feature的坐标
self.pos = (0, 0)
self.size = []
self.extent = []#用以存储图层外接多边形坐标
self.ratio = 0.0#用以存储缩放比例
self.InitBuffer()#执行上篇所述重读缓存数据的函数

3、设置外接多边形的exte
9 7 3 1 2 4 8 :

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    用Python做GIS:翻炒篇
    用Python作GIS:择菜篇 
    用Python作GIS:菜谱篇
    用Python作GIS:原料篇
    Python程序框架
    用Python做GIS:上菜篇
    Python教程之接下来? 

    关于我们友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
     
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.
     

                   滇ICP备05006901号