建议大家先看看MapNet控件的程序员编程指南的帮助:http://www.studioat.it/StudioAT/Help/MapNet/MapNetWebHelp.htm相信对您会有帮助的。现在我们讨论一下今天的主要问题,其实这个问题我已经在GIS开发随笔(3)——ArcXML和NET_Link方法中探讨有相关的代码,下面我们再把此代码粘贴出来和大家一起分享和研究。
1、点击MapNet控件查询数据的代码如下:
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Web;
7
using System.Web.SessionState;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.HtmlControls;
11
using System.Xml;
12
using StudioAT.IMS;
13
using StudioAT;
14
15
……
16
17
……
此时我们可以通过查找myXmlDoc.GetElementsByTagName中遍历不同域名Name来获得Value中的值(因为我们在第26行中已经申明了一个newxml的对象,和申明xml对象所产生的返回值不同,具体内容请参考ArcXML的相关文档),如果你想让地图和后台数据库交互,那么你就必须让所有需要交互的图层中包含一个和数据库图层表中数据一一对应的外建关系,可以命名为GIS_ID或者其他有意义的并且唯一的字段,这里我们假设此处用的是GIS_ID。那么我们就可以将第46行的代码换成查询到的“GIS_ID”的值的代码,然后再通过从地图中获得的这个GIS_ID的值到数据库中相应的图层表中查询到该条记录,以便完成图层中元素附属属性的现实。当然需要知道的是在此项开始之前,一定要做到一个导入工作将地图中每个数据库文件表(这里我们用的是ArcGIS,所有图层都会有一个*.dbf的文件,可以用Excel打开来查看或修改里面的内容)数据导入到相应的数据库表中,GIS_ID是必须被导入的。2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
这样我们就完成了地图的属性查询工作。
2、点击DataGrid中的某条数据在MapNet中显示相应的元素,代码如下(其中的DataGrid是第三方控件):
1
private void UWG_Result_DblClick(object sender, Infragistics.WebUI.UltraWebGrid.ClickEventArgs e)
2
}
GisID是图层表和数据库表的关联字段,只要获得了此数据值就能遨游在电子地图和数据库表之间了。
2