目的:
1.arcgis server9.2 ADF实现动态设置Label标注功能,选择不同图层然后选择要作为Label显示的字段然后更新地图的Label。
准备工作:
1.用ArcGis Server Manager或者ArcCatalog发布一个叫usa的Map Service,并且把这个Service启动起来。
完成后的效果图:
开始:
1.新建名为LabelFieldSamples的ASP.NET Web应用程序,在页面上添加MapResourceManager1、Map1控件。
2.为MapResourceManager1控件添加MapResourceItem,由上到下分别为,(usa的Map Service)名称为:worldCities、DataSourceType:ArcGIS Server Local。
3.按着上图设置好Map1控件,在页面的右边添加2个<div id="layer"></div>和<div id="field"></div>用来显示图层选择列表和字段选择列表,加一个input 的按钮并且添加onclick事件用来实现按钮功能。具体html代码如下:
图层:
<
div
id
="layer"
></
div
>
2
<
br
/>
3
字段:
<
div
id
="field"
></
div
>
4
<
br
/>
5
<
input
id
="Button1"
type
="button"
value
="显示Label"
onclick
="showLabel()"
/>
public
partial
class
_Default : System.Web.UI.Page, ICallbackEventHandler2
{
3
//脚本段字符串4
public string m_Callback;5
protected void Page_Load(object sender, EventArgs e)6
{
7
//生成脚本段字符串用来供客户端的js调用8
m_Callback = Page.ClientScript.GetCallbackEventReference(Page, "argument", "processCallbackResult", "context", "processCallbackError", true);9
}10

11
ICallbackEventHandler 成员25

26
private string RaiseCallbackEvent(string _callbackArg)27
{
28
string v = "";29
//代码待写30
return v;31
}32
}
<
script type
=
"
text/javascript
"
language
=
"
javascript
"
>
2
function
pageLoad()3
{
4
var argument = "ControlID=Map1&ControlType=Map&Type=Layer";5
var context = "Map";6
var rv=<%= m_Callback %>;7
eval(rv);8
}
9
<
/
script>
private
string
RaiseCallbackEvent(
string
_callbackArg)2

本教程详细介绍了如何在ArcGIS Server 9.2 ADF环境下,通过ASP.NET Web应用程序动态设置地图Label标注。首先,发布并启动Map Service,接着创建Web应用并添加MapResource1、Map1控件,通过Ajax无刷新方式实现图层和字段的选择列表。使用ICallbackEventHandler接口处理回调事件,动态获取图层和字段列表,实现选择图层后更新标注字段。最后,展示如何根据用户选择显示Label并刷新地图效果。

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



