由于项目的需要我现在又开始研究GIS了。由于我们项目是用.net开发的,所以GIS工具也是当前最新的MapXtreme2004,对于新事物我都有一种冲动,所以研究起来也相当有劲,
不过这个也不是那么容易,中文资料太少(本人英语水平有限,正在努力中……),通过网络还是找到了很多零散的资料,在此整理一下。留于以后研究。
1.asp.net中如何用MapControl 动态加载地图
MapControl1.Map.Clear();
MapGeosetLoader gl=new MapGeosetLoader(@"F:\test.gst");
MapControl1.Map.Load(gl);
其实根据不同的格式加载地图的办法也有多种,MapWorkSpaceLoader
2.创建MSW文件
MapInfo.Persistence.WorkSpacePersistence wsp = new MapInfo.Persistence.WorkSpacePersistence();
wsp.Save ("c:\\temp\\newwork.mws"); //保存文件
3.创建InfoTool的事件
InfoTool的事件与button不一样,而是 InfoRetrieved。
创建后将是这样:
private void InfoToolControl1_InfoRetrieved(object sender, MapInfo.Web.UI.WebControls.InfoToolEventArgs e)
{
string Info = "";
foreach(MapInfo.Data.ITableFeatureCollection fc in e.Features)
{
foreach(MapInfo.Data.Feature f in fc)
{
Info= string.Format(Info + f[1].ToString() + " ");
}
fc.Table.Close();
}
}
4.如何通过web.config来加载地图
在web.config中,在下添加的Key
In the HTML view of the form under the mapinfowebuiwebcontrols:MapControl tag, set the following properties:
在HTML视图中,更改 mapinfowebuiwebcontrols:MapControl的属性MapAlias必须以.MSW结尾
UseDesigntimeWorkspace="fale" ,这一句要删除WorkspaceFileName="WebForm1MapControl1.mws"
5.在添加了新层后如何更新地图让InfoTool可以获取他的信息
MapInfo.Data.Table tab = MapInfo.Engine.Session.Current.Catalog.OpenTable(@"C:\Program Files\MapInfo\MapXtreme2004\Maps\World\world.tab");
MapInfo.Mapping.FeatureLayer fl = new MapInfo.Mapping.FeatureLayer(tab);
this.MapControl1.Map.Layers.Add(fl);
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-27883-1.html
及时为IBM排忧解难
辛苦了