2010年6月2日 星期三

Mapguide_線上編修2_WKT標準

若要實作出線上編修的功能,就必須要先了解各種空間資料庫所定義的資料型態,那講到空間資料型態就一定要提到由「開放式地理資訊系統協會」所規定之標準空間資料描述方法(WKT),這種描述方法已經被Oracle與MS SQL的Spatial所支援,所儲存在這兩種空間資料庫的圖徵資料,皆可以以這種形式讀取出來,再做其他的應用,甚或存入該空間資料庫。

常用到的有以下幾種,各有各式的定義方式,比如說面要用兩個括弧包起來,XY座標中間不用給逗點,是兩個點的座標中間才要給。

點(Point):POINT(15 20)

線(LINESTRING):LINESTRING(0 0, 10 10, 20 25, 50 60)

面(POLYGON):POLYGON((0 0,10 0,10 10,0 10,0 0))

有洞的面(POLYGON):POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))

多點(MULTIPOINT):MULTIPOINT(0 0, 20 20, 60 60)

多線(MULTILINESTRING):MULTILINESTRING((10 10, 20 20), (15 15, 30 15))

多面(MULTIPOLYGON):MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5)))

在MapGuide內也可以依照這樣的定義方式讀入

'線
Dim bufferGeometry As MgGeometry = wktReaderWriter.Read("LINESTRING(186194.59876692388 2552355.3086386872,208040.45699987814 2527060.1043689507)")
bufferGeometry = bufferGeometry.Buffer(bufferDist, srsMeasure)
'面
Dim bufferGeometry As MgGeometry = wktReaderWriter.Read("POLYGON((150000 2500000,160000 2560000,230000 2560000,150000 2500000))")
bufferGeometry = bufferGeometry.Buffer(bufferDist, srsMeasure)

沒有留言:

張貼留言