Silverlight Map矢量地图构建过程分析

本文主要结合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[]类型 。

 

GometryFeature申明为指定序列化或反序列化时Web服务能够使用的识别的已知类型。

代码

[DataContract(IsReference = true), ServiceKnownType(typeof (GeometryFeature))]
     public class GeometryFeature
     {
         public GeometryFeature()
         {
         }
         public GeometryFeature(byte[] bytes,  Dictionary<string,object> attributes)
         {
             this.BinaryGeometry = bytes;
             this.Attributes = attributes;
         }
         [DataMember]
         public Dictionary<string, object> Attributes
         {
             get;
             set;
         }
         [DataMember]
         public byte[] BinaryGeometry
         {
             get;
             set;
         }
     }

时间: 2025-01-21 12:34:05

Silverlight Map矢量地图构建过程分析的相关文章

解决ArcGIS API for Silverlight 加载地图的内外网访问问题

原文:解决ArcGIS API for Silverlight 加载地图的内外网访问问题 先上一个类,如下: public class BaseClass { public static string getFullUri(string oldUriString) { string newUriString = oldUriString; //处理相对地址============================================================ if (newUri

数据点:使用 Silverlight 2 和 WCF 构建服务驱动的应用程序

本专栏基于 Silverlight 2 的 Beta 2 版本.文中的所有信息均有可能发生变更. 目录 示例应用程序 跨域通信 Silverlight 客户端 绑定产品列表 异步通信 产品详细信息和绑定模式 更改事件 结束语 毋庸置疑,Silverlight 2 使得利用大量图形处理技术构建丰富 Internet 应用程序 (RIA) 变得非常容易.但另一方面,Silverlight 2 可以轻松构建相当专业的业务线 (LOB) 应用程序也是不争的事实.Silverlight 2 支持已启用了

程序-移动机器人室内地图构建

问题描述 移动机器人室内地图构建 毕业设计做移动机器人的路径规划和地图构建,在地图构建这块实在做不出来,有没有大神可以有关这方面的开源程序或者资料可以分享下吗?谢谢啦

ArcGIS API for Silverlight 实现修改地图上的工程点位置

原文:ArcGIS API for Silverlight 实现修改地图上的工程点位置 #region 处理工程点点击编辑相关事件 public Graphic editgraphics = null; //待编辑的Graphics图层 public Graphic oldgraphics = null; //原先Graphics图层 public Symbol symbolold = null; /// <summary> /// 在地图上点击编辑点处理事件 /// </summary

Android /Google Sky Map星空地图

你曾幻想在夜晚抬起头,满天的星星散布在天空,迷人的景象,肯定让人如痴如醉,如果你刚好在Android Market里下载了这款「Google Sky Map」,你就能马上知道天上的星星.星座名字. Google这款星空图利用图层将天上的各种物体归类,每个图层根据星球.星座.地平线等,显示不同的星空图,层层叠在一起就可以清楚看见整个星空. 最特别的是,你不需要多啦A梦,这款「Google Sky Map」就可以带「时光旅行」,任意穿梭时空不再是梦,相当浪漫,下载率超高,广受好评. (1)打开Sky

DeepEarth:使用Silverlight的地图控件

DeepEarth是一个地图控件,它将微软的Silverlight 2.0平台和DeepZoom(MuliScaleImage)控件联合起来.其核心构建在这些创新的技术上以提供这样一种架构:可以将服务层.数据提供者以及你自己的客户化地图元素集成到富于表现力的用户体验中.同时它还有一些深入的示例说明了如何使用Virtual Earth Web Services以充分利用高级GIS的服务功能.通过以上这些,你就可以将一个交互式.本地的Silverlight 2.0地图集成到你的应用中了. .该开源项

《JavaScript构建Web和ArcGIS Server应用实战》——2.4 更多关于地图的介绍

2.4 更多关于地图的介绍 在前面的内容中,我们已经介绍了使用ArcGIS API for JavaScript创建每一个应用程序所需要遵循的步骤.你已经学会了如何创建一个初始化的JavaScript函数.初始化脚本的目的是为了创建地图.添加图层和执行任何让应用程序启动时必需的安装程序.在本节中创建一个地图是你需要完成的一个任务,我们还将更加详细地讲述已创建Map类实例中的各种选项. 在面向对象编程语言中,创建一个类的实例常常是通过构造函数来完成的.构造函数是一个函数,用于创建或初始化一个新的对

Android 矢量室内地图开发实例_Android

矢量室内地图开发 因为公司项目的需要,需要开发一套室内地图,并实现路线的规划功能.因为之前没做过这方面的开发,相关的资料也比较少,所以只能一个人去摸索.刚开始我是使用一般的位图去当作的地图,但是这个也让我在后面吃了不少的苦头. 我们知道地图一般都会有缩放和拖拽等功能,正当我把一样利用位图开发的地图样例时,我发现了不少的问题: 1.位图缩放会失真: 2.图片加载比较慢: 3.会导致客户端内存溢出 ... 因为这些问题,我不得不放弃这种方法.要解决上面的问题只能使用矢量图进行开发了,于是我使用了HT

ArcGIS API for Silverlight开发入门

你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我 都没关系.但你不能否认3G是一种趋势,最终我们每个人都会被包裹在3G网络中.1100也不是一成不变,没准哪天为了打击犯罪,会在你的1100上强制 装上GPS.GIS工作既然建立在计算机的基础上,当然也得随着IT行业与时俱进.       看看现在计算机应用的趋势吧.云(计算),这个东西可讲不清楚,因为云嘛,飘忽不定的.不过可以这样来看它,以后计算机网络上就有一坨(或者几坨)万能的 云,有什么需求云都可以满足我们,