目的:
1.MapIdentify功能,自定义Tool以及TaskResults应用。
准备:
1.(一、四)的工程,具体见前篇。
开始:
1.......看前一篇。
2.......看前一篇。
3.......看前一篇。
4.切换到Measure.ascx的html代码视图,给主table添加id为MeasureToolbar,添加style属性为color:Black;background-color:White;border-color:Black; border-width:1px;border-style:Outset;width:275px;visibility:hidden;position: absolute; left: 285px; top: 298px; z-index:11000; 这样可以是这个用户控件浮在地图之上同时默认为不显示。
5.其他的也做相应的设置,完成后的代码和说明如下:
1
6.在完成上面的代码后,就把这个用户控件拖到Default.aspx页面中,并且设置相应的属性,具体设置好后的代码如下:
1
<uc1:Measure id="Measure1" runat="server" AreaUnits="Sq_Miles" MapBuddyId="Map1" MapUnits="Resource_Default" MeasureUnits="Meters" NumberDecimals="3">
2
</uc1:Measure>
7. 在Toolbar1中新增加一个Tool,设置相应的属性,如果设置后代码如下:2
1
<esri:Tool ClientAction="startMeasure()" DefaultImage="~/images/measure.png" HoverImage="~/images/measure_HOVER.gif" JavaScriptFile="" Name="Measure" SelectedImage="~/images/measure_ON.gif" Text="Measure" ToolTip="Measure" />
8.接下来实现ClientAction的startMeasure()的js方法,在javascript目录中新建display_measure.js文件,同时在Measure.ascx文件中添加对这个js文件的引用。
1
<script language="javascript" type="text/javascript" src="JavaScript/display_measure.js"></script>
9.在js文件中编写startMeasure()方法,代码和说明如下:
1
//测量控件的内容显示,必须定义为m_measureDisplay,在Esri的display_dotnetadf.js的processCallbackResult的方法中有用到
2
var m_measureDisplay = "MeasureDisplay";
3
//测量控件的状态
4
var m_currentMeasureToolbarTool = "polyline";
5
6
//测量类型
7
var m_MeasureTypes = new Array();
8
m_MeasureTypes[0] = "point";
9
m_MeasureTypes[1] = "polyline";
10
m_MeasureTypes[2] = "polygon";
11
12
//
13
}
10.在js文件中添加测量工具的checkMeasureToolbarBorde方法和setMeasureToolbarTool方法,代码和说明如下:2
3
4
5
6
7
8
9
10
11
12
13
1
//测量按钮鼠标移上去的显示效果
2
function checkMeasureToolbarBorder(cell, type)
3
}
11.接下来添加测量控件的拖拽事件dragMeasureToolbarStart具体的代码和说明如下:2
3
1
//测量控件拖拽开始
2
function dragMeasureToolbarStart(e, id)
3
}
12.到这里这个Common_WebMappingAppCSharp.zip示例大体上分析完成了,剩下的就是一些比较简单的功能这样也不作分析了。2
3