这几天,在客户那里做Virtual Earth的技术支持,需要帮助客户基于ASP.NET 3.0+Javascript+WCF+Silverlight+Ado.net data service等技术上,做地图应用,其中有一个比较有意思的问题是,自定义Shape对象的图标,几经摸索最终搞定。
场景描述:
用户在使用程序的时候,需要添加图钉(Pushpin)、线条(Polyline)、多边形(Polygon)等到数据库里面,然后可以通过一个按钮或者其他的方式,把这些数据读取出来,显示在地图上。对于这里提到的几个图形(Shape),需要使用自定义的图标、线条及其他描述信息。
根据MS的VE的SDK里面的文档,把这些Shape添加到数据库中,可以非常的容易实现,而且在添加的时候也容易把各种自定义的图标赋值给Shape上,也容易存储到数据库中,遇到的问题是如何取出来,并且显示到地图上去。
实现方式:
一、VEMap.ImportShapeLayerData
首先,找到Virtual Earth的SDK(http://dev.live.com/virtualearth/sdk),然后里面提供了一个“Import data into shape layers”栏目,用于把成批的数据导入到地图上去,看上去用这里提供的方法可以帮助我们去完成这个要求。
在VirtualEarth里面提供一个名为ImportShapeLayerData的方法来加入成批的数据,格式如下:
| VEMap.ImportShapeLayerData(shapeSource, callback, setBestView); |