arcgis与python_【转载】Python与ArcGIS Engine的集成

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值