目的:
1.arcgis server9.2 ADF实现实现点、线、面的MapTips。输入关键字查询出结果,然后给这些结果加上MapTips
准备工作:
0.参考multimaptips-en.rtf。
1.用ArcGis Server Manager或者ArcCatalog发布一个叫usa的Map Service,并且把这个Service启动起来。
注:要为这个usa的地图添加一个点层名为New_Shapefile,因为maptips控件必须初始设置Layer属性不然会报错,这个控件真是问题多多了。
完成后的效果图:

ArcGIS.Server.9.2.DotNet实现点、线、面的MapTips
开始:
1.新建名为myMapTips的ASP.NET Web应用程序,在页面上添加MapResourceManager1、Map1、MapTips1控件、Text1的input(输入查询关键字用)、Button1的input(搜索按钮)。
2.设置MapResourceManager1的属性,这里需要2个MapResourceItem,由上到下分别为maptips、usa。maptips的DataSourceType:GraphicsLayer;usa的DataSourceType:ArcGIS Server Local,就是连接上面发布的usa的Map Service。
3.设置MapTips1控件属性,map="Map1" BodyFormatString="{Id}" HeaderFormatString="{Id}" Layer="MapResourceManager1::usa::New_Shapefile" WhereClause="2>1"  上面的这些属性必须设置不然会报错了,这个控件设计的真是怪,还有一点了要在程序里动态设置MapTips1控件属性并且刷新必须设置 ShowOnlyWhenLayerIsVisible="False"不然也会报错。
4.Button1的input(搜索按钮),添加onclick事件:search(),其他的控件也做好相应的设置。
5.接下开始代码编写,首先实现ICallbackEventHandler接口,实现GetCallbackResult()和RaiseCallbackEvent(string eventArgument)两方法,具体代码如下:

 1ArcGIS.Server.9.2.DotNet实现点、线、面的MapTipspublic partial class TipsPage : System.Web.UI.Page, ICallbackEventHandler
 2        }
6.切换到html视图编写search()的脚本方法,具体代码如下:
 1ArcGIS.Server.9.2.DotNet实现点、线、面的MapTips<script>
 2ArcGIS.Server.9.2.DotNet实现点、线、面的MapTips    //搜索事件
 3ArcGIS.Server.9.2.DotNet实现点、线、面的MapTips    function search()
 4script>
7.添加上面的代码时必须注意这段代码不能放在head标签内,不然maptips控件会报“控件包含代码块(即 <% ... %>),因此无法修改控件集合”的错误。再次鄙视一下这个控件。
8.接下来切换cs代码端处理search()的脚本方法发起的请求,具体在RaiseCallbackEvent(string _callbackArg)方法中进行请求处理并且把处理结果返回给客户端,具体代码和说明如下:
  1ArcGIS.Server.9.2.DotNet实现点、线、面的MapTipsprivate string RaiseCallbackEvent(string _callbackArg)
  2        }
9.这样完成了代码编写,可以运行测试查看效果。

相关文章:

  • 2021-07-03
  • 2021-08-15
  • 2021-07-14
  • 2022-02-13
  • 2022-03-07
  • 2022-02-17
  • 2021-11-26
  • 2022-02-08
猜你喜欢
  • 2021-12-02
  • 2021-05-18
  • 2021-09-12
  • 2022-01-29
  • 2022-01-02
  • 2022-01-29
相关资源
相似解决方案