设为首页 收藏本站
查看: 3408|回复: 0

[经验分享] 用Python做GIS:上菜篇

[复制链接]

尚未签到

发表于 2015-4-26 11:57:28 | 显示全部楼层 |阅读模式
伍:上菜篇

1、wkb源代码


2、sketch.py源代码

#
-*- encoding:GBK -*-
import wx

class SketchWindow(wx.Window):
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
= []
self.pos
= (0, 0)
self.size
= []
self.extent
= []
self.ratio
= 0.0
self.InitBuffer()
#2 连接事件
        self.Bind(wx.EVT_SIZE, self.OnSize)
self.Bind(wx.EVT_IDLE, self.OnIdle)
self.Bind(wx.EVT_PAINT, self.OnPaint)
#self.Bind(wx.EVT_MENU, self.OnQuit, id=109)
        wx.EVT_MENU(parent, 211, self.OnLine)
wx.EVT_MENU(parent,
212, self.OnPolygon)
#Menu
        menuBar=wx.MenuBar()
mFile
=wx.Menu()
mFile.Append(
101, '打开(&O)', '打开文件')
mFile.Append(
102, '保存(&S)', '保存文件')
mFile.Append(
103, '关闭(&C)', '关闭文件')
mFile.AppendSeparator()
mFile.Append(
109, '退出(&X)', '退出系统')
menuBar.Append(mFile,
'文件(&F)')
mView
=wx.Menu()
mView.Append(
201, '放大(&I)', '放大视图')
mView.Append(
202, '缩小(&O)', '缩小视图')
mView.Append(
203, '平移(&P)', '平移视图')
mView.AppendSeparator()
mView.Append(
211, '线划(&L)', '线段样式')
mView.Append(
212, '填充(&S)', '填充样式')
menuBar.Append(mView,
'视图(&V)')
parent.SetMenuBar(menuBar)
#parent:SetMenuBar对应于frame,故使用parent
    def InitBuffer(self):
self.size
= self.GetClientSize()
#3 创建一个缓存的设备上下文
        self.buffer = wx.EmptyBitmap(self.size.width, self.size.height)
dc
= wx.BufferedDC(None, self.buffer)
#dc = wx.BufferedDC(wx.ClientDC(self), self.buffer)
    #4 使用设备上下文
        dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
dc.Clear()
self.DrawLines(dc)
self.reInitBuffer
= False
def GetLinesData(self):
return self.lines[:]
def SetLinesData(self, lines):
self.lines
= lines[:]
self.InitBuffer()
self.Refresh()
def SetExtent(self, Extent):
if self.extent == []:
for i in range(4):  self.extent.append(Extent)
else:
if Extent[0] self.extent[1]:  self.extent[1] = Extent[1]
if Extent[2] self.extent[3]:  self.extent[3] = Extent[3]
#wx.MessageDialog(None,str(self.extent)).ShowModal()
        RatioX = self.size.width / (self.extent[1] - self.extent[0])
RatioY
= self.size.height / (self.extent[3] - self.extent[2])
if RatioX

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60869-1-1.html 上篇帖子: python开发_python中字符串string操作 下篇帖子: CDays–3 通过函数进行功能化 Python基础教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表