精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SQL Server 2008空間數據應用系列七:基于Bing Maps(Silverlight) 的空間數據展現

數據庫 SQL Server
本篇博文以Bing Maps Silverlight Control為地圖應用客戶端為基礎,介紹如何實現在Bing Maps中呈現地理空間數據。

友情提示,您閱讀本篇博文的先決條件如下:

  1. 本文示例基于Microsoft SQL Server 2008 R2調測。
  2. 具備 Transact-SQL 編程經驗和使用 SQL Server Management Studio 的經驗。
  3. 具有使用 Microsoft Visual Studio 進行 Microsoft .NET Framework開發的經驗。
  4. 具有使用WCF、Silverlight、ADO.NET開發的經驗。
  5. 熟悉或了解Microsoft SQL Server 2008中的空間數據類型。
  6. 具備相應(比如OGC)的GIS專業理論知識。

 


SQL Server 2008中存儲的空間數據,除了能夠直接基于SQL Server做空間查詢、空間分析外,由于SQLCLR提供了非常豐富、完善的開發API,使得空間數據可以在不同的常用空間數據類型之間轉換,同時還可以非常簡單的和地圖應用無縫集成使用。本篇博文以Bing Maps Silverlight Control為地圖應用客戶端為基礎,介紹如何實現在Bing Maps中呈現地理空間數據。

一、準備空間數據

為了演示如何基于Bing Maps Silverlight Control來呈現SQL Server 2008中存儲的空間數據,首先需要在數據庫中模擬一些數據供數據查詢使用,隨意創建一個帶有空間數據類型字段的表就可以,如下SQL腳本。

  1. CREATE TABLE DrawnPolygons(  
  2.     [ID] [int] IDENTITY(1,1) NOT NULL,  
  3.     [Name] [varchar](50) NOT NULL,  
  4.     [Polygon] [geography] NOT NULL)  
  5. GO 
對于上面腳本所創建的表格,隨意的構造幾條數據,如下圖SQL Server Management Studio的空間結果中所呈現的效果。

二、編寫數據服務接口

數據結構使用WebService或者WCF提供都可以,本篇選用WCF Service提供地圖數據訪問接口,實現將數據庫的空間數據讀取出來返回到Bing Maps的地圖客戶端。由于目前的Linq To Sql和ASP.NET Entity Framewrok還不支持SQL Server 2008的空間數據類型,數據訪問只能自己編寫ADO.NET實現。如下代碼塊:

  1. private DataTable Query(string sql)  
  2. {  
  3.     string cstring = ConfigurationManager.ConnectionStrings["BingMapsDB"].ConnectionString;  
  4.     SqlConnection conn = new SqlConnection(cstring);  
  5.     if (conn.State == ConnectionState.Closed) conn.Open();  
  6.     SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);  
  7.     DataSet ds = new DataSet();  
  8.     adapter.Fill(ds);  
  9.     return ds.Tables[0];  
直接在WCF中對外公布一個公共方法,并將其標記為操作契約(OperationContract)就完成了服務接口的提供,該接口實現數據庫查詢并將數據庫數據數據組合為對象集合返回到客戶端,詳細實現如下代碼塊。
  1. [OperationContract]  
  2. public List QueryPolygons()  
  3. {  
  4.     var sql = "SELECT  * FROM [DrawnPolygons]";  
  5.  
  6.     var result = Query(sql);  
  7.     List areas = null;  
  8.     if (result != null && result.Rows.Count > 0)  
  9.     {  
  10.         areas = new List();  
  11.         foreach (DataRow row in result.Rows)  
  12.         {  
  13.             areas.Add(new DrawnPolygons  
  14.             {  
  15.                 ID = int.Parse(row["ID"].ToString()),  
  16.                 Name = row["NAME"].ToString(),  
  17.                 Xaml = ToXaml(row["Polygon"], row["ID"].ToString())  
  18.             });  
  19.         }  
  20.     }  
  21.     return areas;  
接口使用了數據傳輸對象DrawnPolygons,其他結構如下定義:
  1. [DataContract]  
  2. public class DrawnPolygons  
  3. {  
  4.     [DataMember]  
  5.     public int ID { get; set; }  
  6.     [DataMember]  
  7.     public string Name { get; set; }  
  8.     [DataMember]  
  9.     public string Xaml { get; set; }  
  10. }  
三、構造空間數據客戶端對象

在這里請大家講視眼轉移到本篇前面代碼片段的中加粗大紅字體處,會發現使用了一個名為“ToXaml()”的方法,此方法的主要功能就是實現將空間數據轉換為客戶端Silverlight能夠識別的xaml語言標記。該方法的詳細實現如下代碼塊所示:

  1. private string ToXaml(object polygon,string id)  
  2. {  
  3.     StringBuilder sb = new StringBuilder();  
  4.     //將數據庫查詢出的空間數據構造為SQL Server空間數據類型對象  
  5.     var geo = SqlGeography.STGeomFromText(  
  6.                                 new SqlChars(  
  7.                                 new SqlString(polygon.ToString())), 4326);  
  8.     //將空間數據構造為Bing Maps圖形(多邊形)對象的Xaml文本,以返回到客戶端直接解析Xaml為Silverlight程序中的對象。  
  9.     for (int j = 1; j <= geo.NumRings(); j++)  
  10.     {  
  11.         if (geo.RingN(j).STNumPoints() > 1)  
  12.         {  
  13.             sb.Append(");  
  14.             sb.Append(" Fill=\"Red\" Locations=\"");  
  15.             for (int k = 1; k <= geo.RingN(j).STNumPoints(); k++)  
  16.             {  
  17.                 if (k > 1) sb.Append(" ");  
  18.                 sb.Append(String.Format("{0:0.#####},{1:0.#####}",   
  19.                     (double)geo.RingN(j).STPointN(k).Lat,   
  20.                     (double)geo.RingN(j).STPointN(k).Long));  
  21.             }  
  22.             sb.AppendLine("\"/>");  
  23.         }  
  24.     }  
  25.              
  26.     return sb.ToString();  
  27. }  
實際上,在服務端將空間數據轉化為Xaml并非實現傳遞空間數據到客戶端并解析呈現到GIS界面的***選擇,還可以將數據庫空間數據處理為KML、GML等常用的其它能夠表示存儲地圖數據的任意格式返回到客戶端使用。這里為何選擇將空間數據解析為Xaml語言標記的目的是為了Silverlight能夠直接將Xaml語言標記解析為對應的對象,并能夠直接使用。如果選擇將空間數據解析為別的地圖數據格式,還需要額外的解析算法去實現空間數據的解析。

四、Bing Maps客戶端的實現

Bing Maps Silverlight客戶端只需要調用上面提供的WCF Service接口,將空間數據查詢到客戶端,然后通過XamlReader的接口解析Xaml為對應的對象即可,可以在應用程序加載時就發起對接口的調用。如下代碼塊所示:

  1. public MainPage()  
  2. {  
  3.     InitializeComponent();  
  4.       
  5.     //調用WCF服務接口查詢空間數據到客戶端  
  6.     DataServiceClient service = new DataServiceClient();  
  7.     service.QueryPolygonsCompleted += new EventHandler(service_QueryPolygonsCompleted);  
  8.     service.QueryPolygonsAsync();  
  9. }  
  10. private void service_QueryPolygonsCompleted(object sender, QueryPolygonsCompletedEventArgs e)  
  11. {  
  12.     if (e.Error != nullreturn;  
  13.  
  14.     for (int i = 0; i < e.Result.Count; i++)  
  15.     {  
  16.         //將空間數據所構造的Xaml語言標記解析為Bing Maps Silverlight Control中的多邊形(MapPolygon)對象。  
  17.         MapPolygon polygon = (MapPolygon)XamlReader.Load(e.Result[i].Xaml);  
  18.         //將多邊形對象添加到地圖中呈現。  
  19.         map.Children.Add(polygon);  
  20.  
  21.     }  
  22. }  

四、相關資料

[1]、數據表中使用空間數據類型:http://www.cnblogs.com/beniao/archive/2011/02/21/1959347.html

[2]、幾何實例上的OGC方法:http://msdn.microsoft.com/zh-cn/visualc/bb933960.aspx

[3]、幾何圖形實例上的擴展方法:http://msdn.microsoft.com/zh-cn/library/bb933880.aspx

[4]、OGC 靜態幾何圖形方法:http://msdn.microsoft.com/zh-cn/library/bb933894.aspx

[5]、Bing Maps開發系列博文:http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html

原文鏈接:http://www.cnblogs.com/beniao/archive/2011/03/20/1963361.html

 

【編輯推薦】

  1. 日志真沒想象的那么簡單
  2. 用SQL查詢日 月 周 季
  3. SQL Server 2008中的代碼安全
  4. SQL問題與解答:維護日志和索引
  5. SQL Servr 2008空間數據應用系列六:基于SQLCRL的空間數據可編程性
責任編輯:艾婧 來源: 博客園
相關推薦

2011-03-22 15:10:49

Bing MapsSQL Server

2011-02-21 13:06:42

Microsoft S

2011-03-22 09:17:12

SQLCRLSQL Server

2011-02-21 13:41:14

SQL Server

2009-04-16 17:55:55

SQL Server 空間數據.NET

2011-02-21 10:26:53

Microsoft S

2011-02-21 10:47:44

Microsoft S

2011-02-21 13:23:54

微軟 SQL Serv

2011-09-01 13:24:42

SQL Server 呈現GeoRSS訂閱的Bing Maps

2009-08-28 11:38:15

MapPoint

2011-03-22 15:36:44

Spatial TooSQL Server

2011-02-21 13:06:34

SQL Servr 2

2009-01-20 13:39:56

數據挖掘空間數據方法

2009-04-16 17:38:24

SQL Server 空間數據智能

2010-09-07 16:28:58

DB2 空間數據

2022-03-30 09:30:00

數據庫地理空間查詢SQL

2022-09-14 11:27:19

物聯網大數據智慧城市

2024-10-18 17:03:16

Python地理空間數據處理

2010-05-07 12:35:05

Oracle spat

2011-08-09 18:40:21

Oracle控制文件重做日志文件
點贊
收藏

51CTO技術棧公眾號

中文字幕av一区中文字幕天堂| 一区二区三区免费在线观看| 国产福利精品av综合导导航| www.xx日本| 丁香一区二区| 欧美日韩综合不卡| 欧美日韩福利在线| 99riav在线| 成人性色生活片免费看爆迷你毛片| 欧美日韩五月天| 欧美乱做爰xxxⅹ久久久| 欧美孕妇孕交xxⅹ孕妇交| 欧美激情1区2区| 日韩二区三区在线| 亚洲综合20p| 亚洲小少妇裸体bbw| 成人欧美一区二区三区白人| 精品无人乱码一区二区三区的优势| 在线免费观看一区二区| 亚洲久久成人| 欧美精品免费看| 日韩中文字幕有码| 国产伦乱精品| 欧美一级片免费看| 国产精品久久久毛片| 国产一级网站视频在线| 国产xxx精品视频大全| 国产精品亚洲美女av网站| 国产小视频在线免费观看| 中文在线播放一区二区| 91精品国产综合久久婷婷香蕉| 日本国产在线播放| 欧美黑人猛交| 亚洲天堂免费在线观看视频| 日韩hmxxxx| 欧美3p视频在线观看| 从欧美一区二区三区| 成人日韩在线电影| 亚洲香蕉在线视频| 免费成人av在线播放| 欧美一区第一页| 日韩欧美一区二区一幕| 免费一区二区三区视频导航| 精品国产凹凸成av人网站| 天天干天天色天天干| 在线一区视频观看| 在线免费观看日韩欧美| 热99这里只有精品| 超碰在线cao| 久久久久久久电影| 玛丽玛丽电影原版免费观看1977| 免费av中文字幕| 亚洲综合社区| 日韩小视频在线| 国产又黄又粗视频| 精品久久久久久久| 日韩精品一区二区在线| 久久久精品视频国产| 国产日本亚洲| 日韩亚洲欧美中文三级| 亚洲综合在线一区二区| 久久久久久亚洲精品美女| 宅男噜噜噜66一区二区66| 激情图片中文字幕| 国产精品亚洲一区二区在线观看| 欧美一区二区视频在线观看2022 | 蜜乳av中文字幕| 国产欧美久久一区二区三区| 亚洲视频电影图片偷拍一区| 日本一道本视频| 香蕉国产精品| 色综合久久悠悠| 精品夜夜澡人妻无码av| 伊甸园亚洲一区| 中文字幕一区二区三区电影| 男人在线观看视频| 亚洲视频综合| 最近的2019中文字幕免费一页 | 九九在线精品| 中文字幕日韩欧美| 爱爱视频免费在线观看| 精品91久久久久| 日本高清视频精品| 在线免费观看一区二区| 国产丶欧美丶日本不卡视频| 狠狠干一区二区| www.亚洲视频| 99久久精品情趣| 欧美精品一区二区三区在线看午夜| yw193.com尤物在线| 樱桃国产成人精品视频| 国精产品一区一区三区视频| 亚洲成人一区在线观看| 日韩精品最新网址| 一色道久久88加勒比一| 综合视频在线| 国产精品91在线观看| 国产ts人妖调教重口男| 久久九九国产精品| 精品人妻人人做人人爽| 92看片淫黄大片欧美看国产片| 日韩三级小视频| 免费成人av在线| 精品久久精品久久| 国产在线二区| 在线免费精品视频| youjizz.com日本| 久久久影院免费| 日韩电影中文字幕在线观看| 在线视频这里只有精品| 国产欧美激情| 91九色对白| 大片免费播放在线视频| 香蕉影视欧美成人| 网站在线你懂的| 亚洲第一福利专区| 欧美黑人xxxx| 国产又粗又猛又黄又爽| 久久久国际精品| 成人一区二区免费视频| av在线加勒比| 制服丝袜亚洲精品中文字幕| 国产精品无码一区二区三区| 国模吧视频一区| 国产美女被下药99| 台湾av在线二三区观看| 亚洲一二三区在线观看| 99精品999| 日本一二区不卡| 日韩**中文字幕毛片| 日韩在线视频第一页| 亚洲女女做受ⅹxx高潮| 国产精品一区二区小说| 精品国产91乱码一区二区三区四区 | 欧美自拍大量在线观看| 欧美自拍第一页| 一区二区三区在线观看视频 | 欧美a视频在线观看| 成人va在线观看| 国产精品一区二区av| 黄网页免费在线观看| 欧美在线免费视屏| 色一情一交一乱一区二区三区| 亚洲久久一区二区| 国产日韩一区欧美| 国产三区四区在线观看| 精品欧美一区二区三区| 捆绑裸体绳奴bdsm亚洲| 亚洲黄色大片| 久久av免费一区| 看黄在线观看| 精品丝袜一区二区三区| 草久视频在线观看| 91在线精品一区二区三区| 人人妻人人添人人爽欧美一区| caoporn成人免费视频在线| 欧美精品videosex极品1| www.国产com| 久久精品视频网| 蜜臀av免费观看| 91欧美在线| 91亚洲精品久久久久久久久久久久| 亚洲xxxxxx| 狠狠躁18三区二区一区| 野外性满足hd| 日韩av网站免费在线| 亚洲精品国产一区| 国模大尺度视频一区二区| 久久这里有精品视频| 国产高清免费在线观看| 亚洲高清久久久| 日韩精品卡通动漫网站| 日韩高清在线不卡| 2025韩国大尺度电影| 视频在线观看免费影院欧美meiju| 欧美黑人性生活视频| 亚洲av成人精品一区二区三区在线播放| 欧美午夜激情视频| 国产黄a三级三级| 丁香亚洲综合激情啪啪综合| 波多野结衣之无限发射| 极品美女一区二区三区| 91精品中文在线| 2019中文字幕在线电影免费 | 99re6在线| 中国色在线日|韩| 综合网日日天干夜夜久久| 国产99久久九九精品无码免费| 五月婷婷另类国产| 三区四区在线观看| 国产成人精品影视| 日韩毛片在线免费看| 欧美激情欧美| 美国av一区二区三区| 韩国一区二区三区视频| 欧美一区亚洲一区| 黄av在线播放| 亚洲女人天堂av| 国产免费一区二区三区最新不卡| 调教+趴+乳夹+国产+精品| 人妻无码一区二区三区免费| 国产大片一区二区| 亚洲最大综合网| 亚洲视频精品| 中文字幕一区二区三区四区五区| 国产精品极品在线观看| 成人网中文字幕| 国产另类xxxxhd高清| 欧美激情伊人电影| 免费在线看黄色| 亚洲欧洲在线免费| 日韩在线视频第一页| 欧美一区二区三区啪啪| 国产无遮挡又黄又爽又色视频| 亚洲亚洲精品在线观看| av在线免费播放网址| 久久久久亚洲综合| 性农村xxxxx小树林| 激情图区综合网| 免费看黄色一级大片| 久久不见久久见国语| av在线不卡观看| 亚州欧美在线| 国产精品对白刺激| 偷拍自拍在线看| 久久久久久一区二区三区| 久久精品视频观看| 日韩在线中文视频| av在线播放免费| 亚洲精品自在久久| 天天干天天舔天天射| 日韩欧美激情一区| 国产精品爽爽久久| 欧美日韩国产另类一区| 国产日韩欧美在线观看视频| 国产欧美一区二区精品性色 | www日本高清视频| 欧美男生操女生| 亚洲精品国产精品国自产网站按摩| 婷婷中文字幕综合| 日本三级免费看| 午夜精品aaa| 在线看成人av| 舔着乳尖日韩一区| 中文字幕在线观看视频网站| 亚洲国产精品视频| 国产无码精品在线观看| 午夜精品一区二区三区电影天堂 | 国内视频一区| 看全色黄大色大片免费久久久| 国产chinese精品一区二区| 欧美日韩黄网站| 国产99在线免费| 秋霞影视一区二区三区| 欧美精品人人做人人爱视频| 国产乱码精品一区二区三区四区| 日本午夜一区二区三区| 欧美精品一二| 亚洲一区二区在线免费观看| 欧美激情777| 久久这里只有精品8| 日韩一级欧洲| 亚洲资源视频| 五月激情久久久| 国产欧美123| 99亚洲精品| 成人三级视频在线播放| 日本不卡的三区四区五区| 欧美美女性视频| 国产精品亚洲一区二区三区在线| 红桃av在线播放| 午夜欧美精品| 国产96在线 | 亚洲| 久久亚洲精选| www.cao超碰| 顶级嫩模精品视频在线看| av网站免费在线播放| 国产色产综合色产在线视频| 婷婷社区五月天| 亚洲国产裸拍裸体视频在线观看乱了| 日韩乱码人妻无码中文字幕| 91久久精品网| 精品久久久久久亚洲综合网站| 亚洲国产高清高潮精品美女| 都市激情一区| 欧美福利视频在线观看| 深夜成人影院| 亚洲综合大片69999| 色吊丝一区二区| 一区二区视频国产| 亚洲经典三级| 亚洲另类第一页| 99久久精品免费看国产| 国产精品麻豆一区| 亚洲va韩国va欧美va精品| 中日韩av在线| 欧美午夜一区二区三区| 国产高清在线免费| 亚洲三级免费看| 日本色护士高潮视频在线观看 | 亚洲一区av| 精品亚洲第一| 婷婷综合激情| 自拍偷拍 国产| 9久草视频在线视频精品| 三上悠亚作品在线观看| 日韩欧美中文字幕在线观看| 精品人妻伦一区二区三区久久| 亚洲欧洲日产国产网站| 国内老司机av在线| 国产日本欧美视频| 女人av一区| 日韩免费视频播放| 国产成人综合在线| 99久久精品久久亚洲精品| 色猫猫国产区一区二在线视频| 亚洲精品一区二区三区新线路| 日韩亚洲综合在线| 中文字幕av一区二区三区佐山爱| 国产精品视频在线免费观看| 天天色天天射综合网| 成人午夜激情av| 久久久精品影视| 日本道在线观看| 精品国内二区三区| 草莓福利社区在线| 国产在线精品一区免费香蕉| 精品视频亚洲| 黄色片一级视频| 99国产精品99久久久久久| 欧美国产日韩综合| 日韩一区二区免费高清| 国产原创精品视频| 成人午夜小视频| 天天综合精品| 午夜精品免费看| 国产精品久久久久四虎| 中文无码精品一区二区三区| 亚洲片在线观看| 激情都市亚洲| 日本一区视频在线观看免费| 性色av蜜臀av色欲av| www.亚洲在线| 国产午夜激情视频| 亚洲成人aaa| gratisvideos另类灌满| 国产精品久久7| 亚洲黄色天堂| 制服丝袜第二页| 欧美性猛交xxxx免费看漫画 | 日本免费成人| 2025韩国大尺度电影| 韩国精品久久久| 日本妇女毛茸茸| 精品国产青草久久久久福利| 欧美人动性xxxxz0oz| 国产激情美女久久久久久吹潮| 亚洲视频一二| 国产精品揄拍100视频| 欧美性xxxxx极品娇小| 国产在线资源| 国产精品老女人精品视频| 久久久影院免费| 国产资源中文字幕| 亚洲国产日韩在线一区模特| 日韩一区二区三区在线观看视频| 97av在线视频| 日本精品三区| 杨幂一区二区国产精品| 亚洲高清中文字幕| 免费观看成年在线视频网站| 国产精品无码专区在线观看| 中文字幕日韩欧美精品高清在线| 久久国产免费视频| 色综合久久久久综合体桃花网| 国产69精品久久app免费版| 亚洲精品免费网站| 日韩午夜av| 妖精视频在线观看免费 | 91精品久久久久久久久久另类| 91精品99| mm131美女视频| 欧美日本韩国一区二区三区视频| 污视频网站免费在线观看| 在线观看日韩www视频免费| 精人妻无码一区二区三区| 在线视频欧美日韩精品| 精品中文字幕一区二区三区四区| 97中文字幕在线| 国产欧美一区二区精品性色超碰 | 亚洲精品大尺度| 激情亚洲小说| 国产精品12345| 国产精品蜜臀在线观看| 理论片中文字幕| 国产精品一区二区三区毛片淫片| 好吊日精品视频| 五月婷婷六月香| 亚洲精品国产精品乱码不99按摩| 欧美成人毛片|