import wx
import wx.aui
#把控件当成ActiveX进行转换
import wx.lib.activex as ActiveX
class MyFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.mgr = wx.aui.AuiManager(self)
#添加AE控件
ax_MapControl = ActiveX.ActiveXCtrl(self,str(esriControls.MapControl ._reg_clsid_),
-1, wx.DefaultPosition,wx.DefaultSize, 0, "MapControl")
ax_TocControl = ActiveX.ActiveXCtrl(self,str(esriControls.TOCControl ._reg_clsid_),
-1, wx.DefaultPosition,wx.Size(200,100), 0, "TocControl")
ax_ToolbarControl = ActiveX.ActiveXCtrl(self, str(esriControls.ToolbarControl._reg_clsid_), -1,
wx.DefaultPosition,wx.DefaultSize, 0, "ToolbarControl")
#把控件添加至Frame中aui.AuiPaneInfo().
self.mgr.AddPane(ax_ToolbarControl, wx.aui.AuiPaneInfo().Name("地图工具条").Caption("地图工具条").Top())
self.mgr.AddPane(ax_MapControl, wx.aui.AuiPaneInfo().Name("地图控件").Caption("地图控件").Center())
self.mgr.AddPane(ax_TocControl, wx.aui.AuiPaneInfo().Name("TOC目录").Caption("TOC目录").Left())
#设置mapcontrol与toolbarControl和tocControl的伙伴关系
toolbarControl = ax_ToolbarControl.ctrl
tocControl = ax_TocControl.ctrl
MapControl= ax_MapControl.GetCtrl()
self.Add_toolbar_Command(toolbarControl)
toolbarControl.SetBuddyControl(MapControl)
tocControl.SetBuddyControl(MapControl)
self.mgr.Update()
#向ToolbarControl中添加命令按钮
def Add_toolbar_Command(self,toolbarControl):
toolbarControl.AddItem('esriControlCommands.ControlsOpenDocCommand',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsMapZoomInTool',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsMapZoomOutTool',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsMapZoomInFixedCommand',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsMapZoomOutFixedCommand',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsMapPanTool',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsMapFullExtentCommand',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsMapZoomToLastExtentBackCommand',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsMapZoomToLastExtentForwardCommand',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsSelectFeaturesTool',-1,-1,False,0,1)
toolbarControl.AddItem('esriControlCommands.ControlsSelectTool',-1,-1,False,0,1)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, '在Python中使用ArcGIS Engine',(100,100),(800,600))
frame.Show()
self.SetTopWindow(frame)
return 1
app = MyApp(0)
app.MainLoop()