您的位置:首页 > 编程语言 > Python开发

使用wxpython实现arcgis二次开发

2007-12-12 09:46 567 查看
最近对wxpython产生兴趣,本机上的arcgis和python都是现成的,想来做一个python+arcengine的应用开发,应该不是问题, 说做就做。
安装一下wxpython,pywin32,建了一个arcgis.py文件,写下:
#!/usr/bin/python
# -*- coding: cp936 -*-
import wx
from wx.lib.activexwrapper import MakeActiveXClass
import win32com.client.gencache as win32
mapxControl = win32.EnsureModule('{C552EA90-6FBB-11D5-A9C1-00104BB6FC1C}',0,1,0)
if mapxControl is None:
raise ImportError("Can't load mapcontrol.")
#import Frame1
#modules ={'Frame1': [0, '', u'Frame1.py']}

class MyMapFrame(wx.Frame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame1.__init__
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)

#mapxControl.
ActiveXWrapper = MakeActiveXClass(mapxControl.MapControl)
self.mapx = ActiveXWrapper( self, -1)
# self.mapx.AddShapeFile(u"F://hhh",u“test” )
self.mapx.LoadMxFile ( u"G://Untitled.mxd")

self.SetTitle(unicode('hello','mbcs'))
self.Layout()

# end wxGlade

# end of class MyDialog

if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame1 = MyMapFrame(None, -1, "")
app.SetTopWindow(frame1)
frame1.Show()
app.MainLoop()

双击运行,ok!地图显示出来了!
不过关闭窗口的时候,出了一个状况,弹出 python.exe 应用程序错误的错误窗口。让我郁闷了半天,发现如果不用LoadMxFile方法,而用AddShapeFile方法就不会出现这个问题。这个到底是那方面出问题了,我本机使用python23,后来安装了一个python25,问题依旧!
最后试了一下py2exe,生成一个exe,倒是生成一个exe,结果运行出错,看运行日志:Can't load mapcontrol 看样子py2exe还没有很完善,这个应用程序看样子暂时不能拿到没有安装python的机器上使用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐