SharpMap学习9调侃WebGIS

看了一下SharpMap的Web代码,想想Map对象的GetMap,不就一个图片的显示嘛(当然Web方面还是涉及很多东东的),前面实现了数据的流程,就突发奇想做个小尝试,把前面的XML数据,通过现有代码在服务器端生成一张图片显示出来好了。

于是建立一个Web应用程序,引用了前面的Practice项目,添加Cache文件夹作为Image生成的存储位置,XML数据文件放在Data文件夹下。

imageDefault.aspx布局image

以加载地图层事件为例:

protected void Page_Load(object sender, EventArgs e)
{
map = new Map(new Size((int)this.mapImage.Width.Value,(int)this.mapImage.Height.Value));
}

private Map map;
protected void btnAddPointLayer_Click(object sender, EventArgs e)
{
string pointPath = Path.Combine(MapPath("Data"), "LayerTemplatePoint.xml");
LaodData(pointPath);
}

private void LaodData(string xmlPath)
{
//加载地图数据
DataProviderXML provider = new DataProviderXML();
VectorLayer addLayer = provider.SetLayerDataSource(xmlPath);
map.Layers.Add(addLayer);

string cacheImage = Path.Combine(MapPath("Cache"), "temp.png");
map.GetMap().Save(cacheImage);
//刷新PictureBox控件
this.mapImage.ImageUrl = "~/Cache/temp.png";
}

结果:

image

这次算是代码重复利用了。

原文地址:https://www.cnblogs.com/sharpfeng/p/2075552.html