使用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的机器上使用了。
安装一下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的机器上使用了。
相关文章推荐
- OpenStack 实现技术分解 (5) 应用开发 — 使用 OpenStackClients 进行二次开发
- phpcms关于url路由在二次开发中的使用方法介绍-实现泛解析
- 基于EasyNVR+EasyDSS H5视频直播二次开发实现业务需求:直接使用播放页面
- phpcms关于url路由在二次开发中的使用方法介绍-实现泛解析
- 使用 ArcGIS中的ArcObjects进行二次开发
- OpenStack 实现技术分解 (5) 应用开发 — 使用 OpenStackClients 进行二次开发
- 基于EasyNVR+EasyDSS H5视频直播二次开发实现业务需求:直接使用播放页面
- Java微信二次开发之17-再次使用百度翻译api超链接实现对文本内容翻译并推送
- ArcGIS二次开发之一:在ArcMap中启动ArcCatalog的代码实现
- arcgis二次开发时,c#代码实现鼠标点击地图时,获取地图的表的字段的信息
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- iOS开发使用Tab Bar Controller实现页面导航功能
- ArcGIS基于C#.NET的二次开发
- Android开发技巧——使用Drawable实现小红点
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 使用WC“.NET研究”F实现SOA面向服务编程——使用AJAX+WCF服务页面开发
- 使用SeaJS实现模块化JavaScript开发
- 实现ubuntu12.04下面,C语言使用GLUT开发环境搭建。
- 【Android开源框架】使用andbase开发框架实现绘制折线图
- Android开发:使用序列化接口Parcelable、Serializable实现Activity间传递复杂数据类型参数