变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

當(dāng)前位置: 首頁IT技術(shù) → Bing Maps開發(fā)擴(kuò)展:Oracle Spatial的空間數(shù)據(jù)渲染

Bing Maps開發(fā)擴(kuò)展:Oracle Spatial的空間數(shù)據(jù)渲染

更多

  Oracle Spatial的空間數(shù)據(jù)應(yīng)用和微軟SQL Server 2008的大同小異,SQL Server 2008提供了基于SQLCLR的編程支持,Oracle Spatial暫時(shí)還沒有比較完善的組件支持。在實(shí)際開發(fā)應(yīng)用中我們可以選擇折中的解決方案,比如將空間數(shù)據(jù)讀取為通用的空間數(shù)據(jù)表達(dá)格式(如:WKT),利用開源的WKT讀取組件便可將WKT數(shù)據(jù)解析為對(duì)應(yīng)的空間數(shù)據(jù)坐標(biāo)點(diǎn)或坐標(biāo)集合。

  下面以一個(gè)實(shí)際的案例來介紹如何讀取Oracle Spatial數(shù)據(jù)為WKT,并通過WKT組件解析數(shù)據(jù),最終在Bing Maps中進(jìn)行渲染。現(xiàn)要實(shí)現(xiàn)將數(shù)據(jù)庫(kù)中地市表配置的全國(guó)地市數(shù)據(jù)中四川省的數(shù)據(jù)讀取出來在地圖中進(jìn)行渲染,Oracle Spatial的sdo_geometry數(shù)據(jù)類型則可以直接使用函數(shù)(get_wkt())進(jìn)行轉(zhuǎn)換為clob數(shù)據(jù)類型數(shù)據(jù)。

  select t.areacode,t.areaname, (t.area.get_wkt()) wkt from areainfo t where areacode like '8623%'

 

  為了方便客戶端的使用,服務(wù)端可以通過WCF服務(wù)封裝數(shù)據(jù)為數(shù)組返回,以下為地市實(shí)體對(duì)象數(shù)據(jù)結(jié)構(gòu)和WCF服務(wù)的定義。

  namespace OracleSpatial.DataService.Models

  {

   [DataContract]

   public class AreaInfo

   {

   [DataMember]

   public string AreaCode { get; set; }

   [DataMember]

   public string AreaName { get; set; }

   [DataMember]

   public string WKT { get; set; }

   }

  }

  namespace OracleSpatial.DataService

  {

   [ServiceContract]

   public interface IGeometryService

   {

   [OperationContract]

   List GetAreaInfo();

   }

  }

  Bing Maps的Silverlight客戶端調(diào)用WCF服務(wù)以獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù),這里就不做詳細(xì)介紹。在這里需要特別介紹的是幾個(gè)開源應(yīng)用:

  1、SharpMap開源的GeoAPI.

  2、NetTopologySuite.

  這兩個(gè)開源庫(kù)分別定義好了不同GIS坐標(biāo)系的空間標(biāo)準(zhǔn),以及基于地理空間的空間對(duì)象、空間計(jì)算和空間分析接口,在應(yīng)用開發(fā)中可以非常方便的完成空間數(shù)據(jù)的讀寫、驗(yàn)證、計(jì)算和分析功能。本文使用到了WKT讀取組件(WKTReader),可以實(shí)現(xiàn)將WKT格式的字符串解析為符合GIS坐標(biāo)系標(biāo)準(zhǔn)的通用空間對(duì)象(Geometry),此空間對(duì)象中就包含了完整的WKT數(shù)據(jù)的描述,如WKT所表示的坐標(biāo)點(diǎn),坐標(biāo)點(diǎn)集合,內(nèi)部坐標(biāo)點(diǎn),空間面積等等。

  public MainPage()

  {

   InitializeComponent();

   this.Loaded += (sender, e) =>

   {

   LoadChinaMap();

   GeometryServiceClient service = new GeometryServiceClient();

   service.GetAreaInfoCompleted += service_GetAreaInfoCompleted;

   service.GetAreaInfoAsync();

   };

  }

  private void service_GetAreaInfoCompleted(object sender, GetAreaInfoCompletedEventArgs e)

  {

   if (e.Error == null)

   {

   ObservableCollection result = e.Result;

   WKTReader reader = reader = new WKTReader();

   IGeometry geometry = reader.Read(result[0].WKT);

   }

  }

  

   通過WKTReader將WKT格式的空間數(shù)據(jù)解析為IGeometry接口的空間對(duì)象,就可以非常方便的獲取WKT空間數(shù)據(jù)中的各種坐標(biāo)值。如果上面所獲取到的數(shù)據(jù),我們就可以通過繪制多邊形以及通過自定義標(biāo)注將數(shù)據(jù)渲染在地圖中。

  private void service_GetAreaInfoCompleted(object sender, GetAreaInfoCompletedEventArgs e)

  {

   if (e.Error == null)

   {

   ObservableCollection result = e.Result;

   WKTReader reader = null;

   foreach (var item in result)

   {

   reader = new WKTReader();

   IGeometry geometry = reader.Read(item.WKT);

   //邊界

   MapPolygon line = new MapPolygon();

   line.Locations = CoordinateConvertor.CoordinatesToLocationCollection(geometry.Coordinates);

   line.Fill = new SolidColorBrush(Colors.Gray);

   line.BorderBrush = new SolidColorBrush(Colors.Green);

   line.BorderThickness = new Thickness(2);

   line.MouseEnter += new MouseEventHandler(line_MouseEnter);

   line.MouseLeave += new MouseEventHandler(line_MouseLeave);

   this.mlayer.Children.Add(line);

   //名稱標(biāo)注

   this.mlayer.AddChild(new PointControl(item.AreaName),

   new Microsoft.Maps.MapControl.Location(geometry.InteriorPoint.Y, geometry.InteriorPoint.X));

   }

   }

  }

  private void line_MouseLeave(object sender, MouseEventArgs e)

  {

   MapPolygon mp = sender as MapPolygon;

   mp.Fill = new SolidColorBrush(Colors.Gray);

 

  }

  private void line_MouseEnter(object sender, MouseEventArgs e)

  {

   MapPolygon mp = sender as MapPolygon;

   mp.Fill = new SolidColorBrush(Colors.Yellow);

  }

  

熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(1)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)
主站蜘蛛池模板: 国产成人精品日本亚洲11 | 手机看片欧美日韩 | 一个人看的www高清视频 | 日韩福利影视 | 国产在线黄色 | 免费两性的视频网站 | 婷婷人人爽人人爽人人片 | 69性成熟xxxxhd | 日本国产视频 | 羞羞视频在线看免费 | 亚洲欧美日韩国产精品 | 在线观看成人影院 | 好色视频在线观看 | 色视频免费看 | 国产精品精品国产一区二区 | 免费无尽xxx视频 | 国模在线视频一区二区三区 | 波多野结衣一二三区 | 亚洲精品在线网址 | 午夜剧场免费体验 | 国产人妖性一区二区 | 日韩视频网址 | 欧美综合区自拍亚洲综合图区 | 在线观看嗯啊成人动作片 | 全黄大全大色全免费大片 | 亚欧色视频在线观看免费 | 久久免费看片 | 3751性欧美视频在线播放 | 波多野结衣在线一区 | 免费成人激情视频 | 色黄网站aaaaaa级毛片 | 中日韩精品视频在线观看 | 禁网站在线观看免费视频 | 一级午夜a毛片免费视频 | 国产免费理论片在线观看 | 日韩专区一区 | 中文字幕一区在线观看视频 | 在线看欧美日韩中文字幕 | 在线播放成人 | 卡一卡二卡三免费专区2 | 五月婷婷综合激情 |