参考这个看一下: http://www.codeproject.com/Articles/87944/WPF-Map-Control-using-openstreetmap-org-Data
现在需求是地图是一张图片,也许是一张普通的图片,或者是一张矢量图。
@共谱一曲:
简单的实现的话,使用Canvas作为容器,将地图,标签,文字按顺序一层层的网上叠即可。
<Canvas> <Image Source="http://static.cnblogs.com/images/logo_small.gif" /> <Button Width="300" Height="100" Opacity="0.7" Canvas.Left="12" Canvas.Top="20" /> <TextBlock Text="hello world" Canvas.Left="40" Canvas.Top="30" /> </Canvas>
保存的时候保存这些元素的属性,例如,TextBlock需要保存文字,颜色,大小,起始位置等。恢复的时候依次恢复即可。
但如果说你的地图还要支持拖动,缩放, 那就麻烦很多了。位置就不能保存屏幕坐标了,而需要改用经纬度,当地图的比例尺和中心点变化时,需要根据经纬度重新计算标签,文字等地图元素的屏幕位置。