上一篇文章《Bing Maps開發擴充一:Oracle Spatial的空間資料渲染》中介紹了如何渲染Oracle資料庫中的空間資料,Oracle中的空間資料出了可以做基本的圖形化介面渲染,我們也可以基於這些資料做一定的空間分析,比如我們想去吃飯,那麼在一定地理空間範圍內是否有餐廳呢?這種情境我們就可以利用Oracle的空間資料分析來實現。 要使用Oracle的空間分析,需要完成很多的前置條件,如下: 1、註冊中繼資料 註冊中繼資料實際上就是想系統資料表USER_SDO_GEOM_METADATA 中插入一條資料,標記某某表的某某欄位需要進行註冊。INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)
VALUES ('表名', '欄位名',
SDO_DIM_ARRAY
(SDO_DIM_ELEMENT('Longitude', -180.0, 180.0, 0.5),
SDO_DIM_ELEMENT('Latitude', -90.0, 90.0, 0.5)),
8307); 2、建立空間索引create index 索引名 on 表名 (空間欄位名) INDEXTYPE IS MDSYS.SPATIAL_INDEX; 3、使用Oracle內建函數實現空間分析查詢 Oracle內建提供很多的空間分析函數,這裡就不一一介紹,通過一個小樣本簡單介紹其中一個函數的使用方法。 例:查詢出指定座標(121.497081,31.239569)附近100米範圍內所有的地名資料。SELECT * FROM GeoInfo n
WHERE SDO_WITHIN_DISTANCE(n.location,
SDO_GEOMETRY(2001,
8307,
SDO_POINT_TYPE(121.497081,31.239569,0),
NULL,
NULL),
'DISTANCE=100 UNIT=meter') = 'TRUE' 通過SQL語句利用Oracle內建函數即可分析出想要的空間資料,將空間資料轉化為WKT格式資料使用WCF發布供BingMap用戶端調用即可。用戶端得到了空間分析結果的資料,要在地圖上做渲染呈現,可沿用《Bing Maps開發擴充一:Oracle Spatial的空間資料渲染》裡面的實現方式。
相關資源
[1]、NetTopologySuite:http://code.google.com/p/nettopologysuite
[2]、WKT:http://www.opengis.org/techno/specs.htm
[3]、【Silverlight】Bing Maps系列文章匯總 相關說明
本文屬學習筆記文章,願與有志者共同學習交流。歡迎轉載,為了儲存作者的創作熱情,但請在明顯地位標記本文的原文串連。
作 者:Beniao
文章出處:http://beniao.cnblogs.com/ 或 http://www.cnblogs.com/