Silverlight Map 矢量地图构建过程分析
2010-02-02 20:13
295 查看
本文主要结合SQLSERVER2008的空间数据库的一些特性,讲解Silverlight在矢量地图绘制方面的一些技术点。服务器端负责提供数据服务,客户端负责图形的绘制,当然这个过程会遇到性能瓶颈,但本文的重点在于地图数据模型的转化过程,以及Silverlight的数据绑定与数据模型间的关系的理解。
服务器端
数据模型层:
1. 获取原始数据模型
从SQLSERVER2008取得数据集DataSet,其中包含的几何数据类型Geometry在.NetCLR中被映射为SqlGeometry类型,该类型在程序集Microsoft.SqlServer.Types.dll的Microsoft.SqlServer.Types 命名空间下(该程序集由SQLSERVER2008自带)。
2. 封装成可序列化的用户数据模型 :GeometryFeature类
遍历DataSet,除SqlGeometry类型外,其余数据保存在以字典Dictionary<string,object>中,Key为字段名,Value为值。SqlGeometry数据由类型自带的STAsBinary()函数转化为byte[]类型 。
代码
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="WebMap.GeometryPathTemplate"
d:DesignWidth="640" d:DesignHeight="480" Clip="{Binding PathData}">
<Path x:Name="GeometryPathShape" Cursor="Hand" StrokeLineJoin="Round" Data="{Binding PathData}"
Fill="{Binding Region.FillColor}"
Stroke="{Binding Region.LineColor}"
StrokeThickness="{Binding Region.LineThickness}"
/>
</UserControl>
最后上一下效果图
这是一个不算完整的项目,重点讲述一些Silverlight在矢量地图显示方面的技术,很多细节没有展开。当然,这些只是个人体会,至于Morten Nielsen这样的大牛们是否会这样去设计,只有等待SharpMap的Silverlight版本出来时才能一睹设计师的风采了。
作者:双宇
出处:http://www.cnblogs.com/ysisl
服务器端
数据模型层:
1. 获取原始数据模型
从SQLSERVER2008取得数据集DataSet,其中包含的几何数据类型Geometry在.NetCLR中被映射为SqlGeometry类型,该类型在程序集Microsoft.SqlServer.Types.dll的Microsoft.SqlServer.Types 命名空间下(该程序集由SQLSERVER2008自带)。
2. 封装成可序列化的用户数据模型 :GeometryFeature类
遍历DataSet,除SqlGeometry类型外,其余数据保存在以字典Dictionary<string,object>中,Key为字段名,Value为值。SqlGeometry数据由类型自带的STAsBinary()函数转化为byte[]类型 。
代码
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="WebMap.GeometryPathTemplate"
d:DesignWidth="640" d:DesignHeight="480" Clip="{Binding PathData}">
<Path x:Name="GeometryPathShape" Cursor="Hand" StrokeLineJoin="Round" Data="{Binding PathData}"
Fill="{Binding Region.FillColor}"
Stroke="{Binding Region.LineColor}"
StrokeThickness="{Binding Region.LineThickness}"
/>
</UserControl>
最后上一下效果图
这是一个不算完整的项目,重点讲述一些Silverlight在矢量地图显示方面的技术,很多细节没有展开。当然,这些只是个人体会,至于Morten Nielsen这样的大牛们是否会这样去设计,只有等待SharpMap的Silverlight版本出来时才能一睹设计师的风采了。
作者:双宇
出处:http://www.cnblogs.com/ysisl
相关文章推荐
- Android应用程序UI硬件加速渲染的Display List构建过程分析
- Android分析应用程序的构建过程
- 深入分析Android构建过程
- Silverlight学习笔记十七BingMap(四)之部署Google地图系统
- Silverlight学习笔记十七BingMap(三)之地图的地区标识
- c++ map 插入元素过程分析
- Map任务执行过程分析
- ArcGis Server ADF Toolbar与Map的客户端和服务端交互过程分析2
- Android地图MapView中apiKey的申请过程
- demo/misc/map(集成地图)源码分析
- hadoop源码分析(2):Map-Reduce的过程解析
- Spring IoC容器构建过程分析(一)
- hadoop源码分析(2):Map-Reduce的过程解析
- 构建fabMap过程中可能遇到的错误
- Mybatis_源码分析_参数封装Map过程
- 我写的silverlight bing map control加载GeoServer地图的方法,请高手指教
- Android构建过程分析
- jQuery的jVectorMap矢量地图用法(部分功能实现)
- ArcGIS API for Silverlight加载BingMap遥感地图
- Hive map阶段优化之一次详细的优化分析过程