全国高分辨率土地利用数据服务 土地利用数据服务 土地覆盖数据服务 坡度数据服务 土壤侵蚀数据服务 全国各省市DEM数据服务 耕地资源空间分布数据服务 草地资源空间分布数据服务 林地资源空间分布数据服务 水域资源空间分布数据服务 建设用地空间分布数据服务 地形、地貌、土壤数据服务 分坡度耕地数据服务 全国大宗农作物种植范围空间分布数据服务
多种卫星遥感数据反演植被覆盖度数据服务 地表反照率数据服务 比辐射率数据服务 地表温度数据服务 地表蒸腾与蒸散数据服务 归一化植被指数数据服务 叶面积指数数据服务 净初级生产力数据服务 净生态系统生产力数据服务 生态系统总初级生产力数据服务 生态系统类型分布数据服务 土壤类型质地养分数据服务 生态系统空间分布数据服务 增强型植被指数数据服务
多年平均气温空间分布数据服务 多年平均降水量空间分布数据服务 湿润指数数据服务 大于0℃积温空间分布数据服务 光合有效辐射分量数据服务 显热/潜热信息数据服务 波文比信息数据服务 地表净辐射通量数据服务 光合有效辐射数据服务 温度带分区数据服务 山区小气候因子精细数据服务
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国建筑物总面积公里格网数据服务 全国人口密度数据服务 全国县级医院分布数据服务 人口调查空间分布数据服务 收入统计空间分布数据服务 矿山面积统计及分布数据服务 载畜量及空间分布数据服务 农作物种植面积统计数据服务 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政辖区信息数据服务
Landsat 8 高分二号 高分一号 SPOT-6卫星影像 法国Pleiades高分卫星 资源三号卫星 风云3号 中巴资源卫星 NOAA/AVHRR MODIS Landsat TM 环境小卫星 Landsat MSS 天绘一号卫星影像
如何创建定制的ToolControl
本例要实现的是如何创建定制的ToolControl。ToolControl是指具有ComboBox的下拉列表 或 EditBox的编辑功能的一类控件。要创建定制的ToolControl,必须在类模块中实现ICommand 和 IToolControl接口。IToolControl接口包括hWnd属性和OnDrop, OnFocus事件。
l 要点
·IToolControl接口的hWnd属性,接受一个Window Handle。
·IToolControl接口的OnDrop事件,支持ToolControl的拖放,传入参数barType表示Bar类型。
·IToolControl接口的OnFocus事件,传入IcompletionNotify类型的参数complete,可以通过执行IcompletionNotify接口的SetComplete方法告之ArcMAP, ToolControl可以失去Focus。
l 程序说明
本例中涉及三个模块,详细描述如下,其中,在类模块中实现了IToolBarDef接口来创建自己的ToolControl。
l 代码
'1、frmImageCombo.frm模块,定义选中Combox某一项之后实现的功能。要求在Form上放置一个
'ImageComb控件(名为ImageCombo1)和一个ImageList控件(名为ImageList1),并在ImageList1
'中添加三张图片。
Private Sub Form_Load()
' 设置ImageCombo1的选择Item
Me.ImageCombo1.ImageList = Me.ImageList1
Me.ImageCombo1.ComboItems.Add 1, "Red", "Red"
Me.ImageCombo1.ComboItems.Add 2, "Blue", "Blue"
Me.ImageCombo1.ComboItems.Add 3, "Green", "Green"
Me.ImageCombo1.ComboItems(1).Image = 1
Me.ImageCombo1.ComboItems(2).Image = 2
Me.ImageCombo1.ComboItems(3).Image = 3
End Sub
Private Sub ImageCombo1_Click()
' 选择颜色
Dim sel As Variant
sel = Me.ImageCombo1.SelectedItem
Dim color As Variant
Select Case sel
Case "Blue"
color = vbBlue
Case "Red"
color = vbRed
Case "Green"
color = vbGreen
End Select
Dim pDocument As IMxDocument
Set pDocument = g_pApplication.Document
' 设置颜色
Dim pRgbColor As IrgbColor
Set pRgbColor = New RgbColor
pRgbColor.RGB = color
' 改变选中部分的颜色
Dim pSelectionEnvironment As ISelectionEnvironment
Set pSelectionEnvironment = New SelectionEnvironment
Set pSelectionEnvironment.DefaultColor = pRgbColor
' 刷新视图
pDocument.ActivatedView.Refresh
' 通知ArcMap,ToolControl现在可以失去Focus
g_pCompletionNotify.SetComplete
End Sub
' 2、modPublicVars.bas模块,定义工程中用到的全局变量。
Option Explicit
Public g_pApplication As IApplication
Public g_pCompletionNotify As IcompletionNotify
' 3、CustImageCombo.cls模块,实现接口Icommand和IToolControl。
Option Explicit
Implements ICommand
Implements IToolControl
Private Property Get ICommand_Bitmap() As esriCore.OLE_HANDLE
End Property
Private Property Get ICommand_Caption() As String
ICommand_Caption = "Custom ImageCombo"
End Property
Private Property Get ICommand_Category() As String
ICommand_Category = "Developer Samples"
End Property
Private Property Get ICommand_Checked() As Boolean
End Property
Private Property Get ICommand_Enabled() As Boolean
ICommand_Enabled = True
End Property
Private Property Get ICommand_HelpContextID() As Long
End Property
Private Property Get ICommand_HelpFile() As String
End Property
Private Property Get ICommand_Message() As String
ICommand_Message = "Change feature selection color"
End Property
Private Property Get ICommand_Name() As String
ICommand_Name = "DevelperSamples_CustomImageCombo"
End Property
Private Sub ICommand_OnClick()
End Sub
Private Sub ICommand_OnCreate(ByVal hook As Object)
Set g_pApp = hook
End Sub
Private Property Get ICommand_Tooltip() As String
ICommand_Tooltip = "Change Selection Color"
End Property
Private Property Get IToolControl_hWnd() As esriCore.OLE_HANDLE
'将frmImageCombo.ImageCombo1的Window Handle赋给IToolControl_hWnd
IToolControl_hWnd = frmImageCombo.ImageCombo1.hWnd
End Property
Private Function IToolControl_OnDrop(ByVal barType As esriCore.esriCmdBarType) As Boolean '仅能将ToolControl拖放到ToolBar上
If barType = esriCmdBarTypeToolbar Then
IToolControl_OnDrop = True
End If
End Function
Private Sub IToolControl_OnFocus(ByVal complete As esriCore.ICompletionNotify)
Set g_pCompletionNotify = complete
End Sub