2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  地理圖形標(biāo)記語(yǔ)言GML的架構(gòu)及范例</p><p><b>  一、前言</b></p><p>  在信息高速公路的時(shí)代,如何能在不同的GIS 系統(tǒng)間實(shí)時(shí)分享資料,是刻不容緩的問(wèn)題,現(xiàn)在該問(wèn)題已經(jīng)有了一個(gè)很好解決方案,那就是以 XML 為基礎(chǔ)的 GIS 編碼標(biāo)準(zhǔn),稱為地理圖形標(biāo)記語(yǔ)言GML(Geography Markup Language)。

2、</p><p>  GML是由開(kāi)放式地理信息系統(tǒng)聯(lián)盟(OpenGIS Consortium,簡(jiǎn)稱OGC)所發(fā)展,專為地理信息而發(fā)展的,以XML 為基礎(chǔ)的編碼標(biāo)準(zhǔn),其與生俱來(lái)的轉(zhuǎn)換及存取能力,將地理空間信息的管理開(kāi)啟一個(gè)全新的領(lǐng)域(請(qǐng)參考 黃旭初[2002],『新世代的GIS編碼標(biāo)準(zhǔn)-地理圖形標(biāo)記語(yǔ)言 GML』,國(guó)土信息系統(tǒng)通訊第42期)。</p><p>  由于GML在GIS領(lǐng)域,將對(duì)

3、『資料交換』課題的扮演關(guān)鍵的角色,GIS 的參與者實(shí)有必要對(duì)GML的內(nèi)容有深入的了解,本文將介紹GML的架構(gòu),并以范例說(shuō)明。</p><p><b>  二、GML基本架構(gòu)</b></p><p> ?。ㄒ唬┮訶ML技術(shù)為基礎(chǔ)</p><p>  GML 目前的正式版本是2.1.1版,它以XML技術(shù)為基礎(chǔ),并使用最新的 XML Schema文件

4、定義技術(shù),XML Schema具有 DTD所沒(méi)有的型態(tài)繼承(type inheritance)、名稱空間(namespaces)等,且其使用XLink來(lái)表現(xiàn)地理空間實(shí)體間的關(guān)系,使得實(shí)體間關(guān)系的建立不僅限于同一數(shù)據(jù)庫(kù),甚至可橫跨網(wǎng)際網(wǎng)絡(luò),因此GML 2.1.1版已足以建構(gòu)分布式的GIS數(shù)據(jù)庫(kù)。</p><p> ?。ǘ┮詓imple feature為處理的單元</p><p>  GML

5、使用『地理圖形實(shí)體(稱為feature)』來(lái)描述這個(gè)世界,基本上一個(gè)feature是由一系列的屬性(properties)及幾何圖形(geometries)所組成,屬性的內(nèi)容包括名稱(name)、型態(tài)(type)、值的敘述(value description)等,幾何圖形(geometries)則由基本幾何區(qū)塊(例如點(diǎn)、線、及多邊形)所組成,為了簡(jiǎn)化,GML的初始規(guī)格限定在平面的簡(jiǎn)單幾何圖形(稱為 simple feature,包括點(diǎn)、

6、線、及多邊形),在不久的將來(lái),將會(huì)擴(kuò)展至3D的幾何圖形及位相資料。</p><p>  GML的編碼可以容許相當(dāng)復(fù)雜的feature,一個(gè)feature的幾何圖形可以由許多幾何圖形元素所組成(稱為 Geometric Collection),也可以包含不同型態(tài)的幾何圖形。例如一個(gè)無(wú)線電轉(zhuǎn)播塔可以同時(shí)有一個(gè)點(diǎn)的屬性(它的位置點(diǎn))及一個(gè)以多邊形所構(gòu)成的面的屬性(它所涵蓋的區(qū)域)。</p><p&g

7、t;<b> ?。ㄈ〨ML的內(nèi)容</b></p><p>  GML 2.1.1版以XML技術(shù)為基礎(chǔ),并使用 XML Schema文件定義技術(shù),目前GML以Feature Schema、Geometry Schema、Xlinks Schema等三個(gè)基本的schema來(lái)定義它的內(nèi)容,分述如下:</p><p>  1. Feature Schema(feature.

8、xsd)</p><p>  Feature Schema定義feature的內(nèi)容及結(jié)構(gòu)。圖1是以UML來(lái)描述Feature schema的內(nèi)容及結(jié)構(gòu),從圖中可以看到幾何圖形的屬性(geometric property)被當(dāng)作一個(gè)關(guān)聯(lián)類(lèi)別(association class),來(lái)將一個(gè)feature與一個(gè)幾何圖形(geometry)連結(jié),例如PointProperty用來(lái)連結(jié)一個(gè)點(diǎn)(point)的幾何圖形。詳細(xì)的

9、Feature schema內(nèi)容請(qǐng)參考GML2.1.1規(guī)格書(shū)(位于http://opengis.net/gml/02-009/GML2-11.html)之附錄A。</p><p>  圖1. Feature schema之UML圖標(biāo)</p><p>  2. Geometry Schema(geometry.xsd)</p><p>  Geometry schem

10、a有關(guān)幾何圖形元素的類(lèi)型的定義,包括點(diǎn)(point)、線(line)、多邊形(polygon)等簡(jiǎn)單幾何圖形,及復(fù)合類(lèi)型(complex type)的幾何圖形。圖2是以UML來(lái)描述Geometry schema的內(nèi)容及結(jié)構(gòu)。</p><p>  Feature schema使用<include>元素來(lái)將幾何圖形結(jié)構(gòu)Geometry schema帶進(jìn)來(lái),使得在定義feature type時(shí)可以引用:&l

11、t;/p><p>  <include schemaLocation= geometry.xsd /></p><p>  詳細(xì)的Geometry schema內(nèi)容請(qǐng)參考GML 2.1.1規(guī)格書(shū)之附錄B。</p><p>  圖2. Geometry schema之UML圖標(biāo)</p><p>  GML 定義了幾個(gè)基本的幾何圖形屬性(

12、Geometric property),用來(lái)將feature與幾何圖形連結(jié),有關(guān)基本的幾何圖形屬性表列如下。</p><p>  3. XLinks Schema(xlink.xsd)</p><p>  提供XLink屬性來(lái)作為數(shù)據(jù)鏈結(jié)使用。Geometry schema使用<import>元素來(lái)引用XLink。詳細(xì)的XLinks schema內(nèi)容請(qǐng)參考GML 2.1.1規(guī)格

13、書(shū)之附錄C。</p><p>  Feature schema、Geometry schema及XLink schema三個(gè)基本schema之間的關(guān)系可用圖3來(lái)表示。</p><p>  圖3. Feature schema、Geometry schema及XLink schema等三個(gè)基本schema之間的關(guān)系。</p><p>  三、以GML編碼的范例<

14、/p><p> ?。ㄒ唬o(wú)幾何圖形的數(shù)據(jù)的編碼</p><p>  本節(jié)以最簡(jiǎn)單的范例介紹起,假設(shè)有個(gè)非空間資料的feature type稱為 員工 (Employee),他有姓名、年齡、及別名等屬性,其中別名可能有0個(gè)或1個(gè)以上,若以XML來(lái)對(duì)"員工"這個(gè)feature type編碼,則可能的XML instance如下:</p><p>  &l

15、t;Employee></p><p>  <name>黃旭初</name></p><p>  <Age>41</age></p><p>  <nickName>小黃</nickName></p><p>  <NickName>阿初</nic

16、kName></p><p>  </Employee></p><p>  在尚不考慮GML的狀況下,本實(shí)例的XML schema應(yīng)定義如下:</p><p>  <element name="Employee" type="ex:EmployeeType" /></p><

17、p>  <complexType name="EmployeeType"></p><p>  <sequence></p><p>  <element name="name" type="string"/></p><p>  <element name=

18、"age" type="integer"/></p><p>  <Element name="nickName" type="string" minOccurs="0"maxOccurs="unbounded"/></p><p>  </Seq

19、uence></p><p>  </complexType></p><p>  若要引用GML的Feature schema,必須先確認(rèn)哪些元素扮演feature type及其屬性(property)的角色,在本例中 員工 是一個(gè)feature type,年齡是一個(gè)屬性(property),則上例改寫(xiě)成GML的語(yǔ)法如下:</p><p>  &

20、lt;element name="Employee" type="ex:EmployeeType" substitutionGroup="gml:_Feature" /></p><p>  <ComplexType name="EmployeeType"></p><p>  <com

21、plexContent></p><p>  <extension base="gml:AbstractFeatureType"></p><p>  <sequence></p><p>  <element name="name" type="string"/>

22、</p><p>  <element name="age" type="integer"/></p><p>  <element name="nickName" type="string" minOccurs="0" maxOccurs="unbounded&

23、quot;/></p><p>  </sequence></p><p>  </extension></p><p>  </complexContent></p><p>  </complexType></p><p>  而且GML的Feature sch

24、ema中有一些已經(jīng)定義好的屬性(例如如GML feature ID(fid)及其description屬性等),可以在制作XML instance的時(shí)候使用,舉例如下:</p><p>  <Employee fid="D1123"></p><p>  <Gml:description>內(nèi)政部信息中心的員工</gml:descriptio

25、n></p><p>  <name>黃旭初</name></p><p>  <age>41</age></p><p>  <nickName>小黃</nickName></p><p>  <nickName>阿初</nickName>

26、</p><p>  </Employee></p><p>  (二)坐標(biāo)及坐標(biāo)范圍的編碼</p><p>  幾何圖形的坐標(biāo)可以用一系列的<coord>元素組、或<coordinates>元素的單一字符串來(lái)編碼,兩種方法都可以對(duì)1、2、3度空間的坐標(biāo)編碼,其中<coord>元素可以使用XML 解析器(parser)

27、來(lái)驗(yàn)證其正確性。</p><p>  <coord>元素在 GML的Geometry schema 中定義如下:</p><p>  <element name="coord" type="gml:CoordType" /></p><p>  <complexType name="Co

28、ordType"></p><p>  <sequence></p><p>  <element name="X" type="decimal"/></p><p>  <element name="Y" type="decimal" mi

29、nOccurs="0"/></p><p>  <element name="Z" type="decimal" minOccurs="0"/></p><p>  </sequence></p><p>  </complexType><

30、/p><p>  <Coord>元素中資料組的組數(shù)由數(shù)據(jù)類(lèi)型決定,例如點(diǎn)(point)資料只含有一組坐標(biāo)組,如下:</p><p>  <Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"></p><p>  <coord><X>5

31、.0</X><Y>40.0</Y></coord></p><p><b>  </Point></b></p><p> ?。ɡ衧rsName="http://www.opengis.net/gml/srs/epsg.xml#4326是空間參考系統(tǒng)。)</p><p> 

32、 而<coordinates>與<coord>的作用一樣,但更具有彈性,使用者可以定義坐標(biāo)值之間的間隔符號(hào)(delimiter),<coordinates>元素在 GML的Geometry schema 中定義如下:</p><p>  <Element name="coordinates" type="gml:CoordinatesType

33、"/></p><p>  <complexType name="CoordinatesType"></p><p>  <simpleContent></p><p>  <extension base="string"></p><p>  <

34、;Attribute name="decimal" type="string" use="default" value="."/></p><p>  <attribute name="cs" type="string" use="default" value=&

35、quot;,"/></p><p>  <attribute name="ts" type="string" use="default" value="&#x20;"/></p><p>  </extension></p><p>  &

36、lt;/simpleContent></p><p>  </complexType></p><p>  <Coordinates>的坐標(biāo)值是儲(chǔ)存在一個(gè)字符串內(nèi),其中預(yù)設(shè)的小數(shù)點(diǎn)是 "."、坐標(biāo)值的間隔符號(hào)是 ","、坐標(biāo)組的間隔符號(hào)是Unicode的空白(#x20),使用者可以依其需要改變上述之間隔符號(hào)。</p

37、><p>  同樣以點(diǎn)資料為例,以<coordinates>編碼坐標(biāo)如下:</p><p>  <Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"></p><p>  <coordinates>5.0,40.0</coordinates

38、></p><p><b>  </Point></b></p><p> ?。ㄈ┗編缀螆D形的編碼</p><p>  幾何圖形的坐標(biāo)都是定義在某種空間參考系統(tǒng)(Spatial Reference System,縮寫(xiě)為SRS)中,GML 2.1.1版中沒(méi)有規(guī)定 SRS的細(xì)部規(guī)格,目前OGC已經(jīng)提出一份建議規(guī)格進(jìn)行討論,應(yīng)該

39、很快就會(huì)公布,幾何圖形類(lèi)型(geometry type)的srsName屬性是用來(lái)指向SRS的定義。</p><p>  幾何圖形類(lèi)型(geometry type)的gid 屬性是幾何圖形元素的唯一辨識(shí)碼,屬于選擇使用的項(xiàng)目,依規(guī)定,gid的值是字符串且第一個(gè)字符不能是數(shù)字。</p><p>  GML中所定義的基本幾何圖形元素(primitive geometry element)包括坐

40、標(biāo)范圍(Box)、點(diǎn)(Point)、線串(LineString)、線環(huán)(LinearRing)、及多邊形(Polygon),分述如下:</p><p>  1. Box:用來(lái)對(duì)feature的坐標(biāo)范圍編碼,第一組坐標(biāo)是坐標(biāo)范圍的極小值,第二組坐標(biāo)是坐標(biāo)范圍的極大值,舉例如下:</p><p>  <Box srsName="http://www.opengis.net/gm

41、l/srs/epsg.xml#4326"></p><p>  <coord><X>0.0</X><Y>0.0</Y></coord></p><p>  <coord><X>100.0</X><Y>100.0</Y></coord>

42、;</p><p><b>  </Box></b></p><p>  2. Point:點(diǎn)元素只有一組坐標(biāo),舉例如下,</p><p>  <Point gid="P1" srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"&g

43、t;</p><p>  <coord><X>56.1</X><Y>0.45</Y></coord></p><p><b>  </Point></b></p><p>  3. LineString:由兩組以上的點(diǎn)坐標(biāo)所構(gòu)成的直線串,舉例如下:</p&

44、gt;<p>  <LineString></p><p>  <Coord><X>0.0</X><Y>0.0</Y></coord></p><p>  <coord><X>20.0</X><Y>35.0</Y></coord

45、></p><p>  <coord><X>100.0</X><Y>100.0</Y></coord></p><p>  </LineString></p><p>  若第一點(diǎn)坐標(biāo)值與最后一點(diǎn)坐標(biāo)值一樣,則這是一個(gè)封閉的線串。</p><p>  4

46、. LinearRing:線環(huán)是封閉的直線串,其第一點(diǎn)坐標(biāo)值與最后一點(diǎn)坐標(biāo)值一樣,它是被用來(lái)建構(gòu)多邊形,其編碼范例詳見(jiàn)以下多邊形的介紹。</p><p>  5. Polygon:多邊形的邊界是由線環(huán)(LinearRing)所構(gòu)成,且區(qū)分成外邊界(outer boundary)及內(nèi)邊界 (inner boundary),內(nèi)邊界可以有多個(gè)但彼此不能交叉及包含,且邊界點(diǎn)的順序是順時(shí)針或逆時(shí)針并不重要。以下是一個(gè)多邊形

47、的 instance,它擁有兩個(gè)內(nèi)部邊界:</p><p>  <Polygon gid="_98217" srsName="http://www.opengis.net/gml/srs/ epsg.xml#4326"></p><p>  <outerBoundaryIs></p><p>  <

48、;LinearRing></p><p>  <coordinates>0.0,0.0 100.0,0.0 100.0,100.0 0.0,100.0 0.0,0.0 </coordinates></p><p>  </LinearRing></p><p>  </outerBoundaryIs></p

49、><p>  <innerBoundaryIs></p><p>  <LinearRing></p><p>  <coordinates>10.0,10.0 10.0,40.0 40.0,40.0 40.0,10.0 10.0,10.0 </ coordinates></p><p>  <

50、;/LinearRing></p><p>  </innerBoundaryIs></p><p>  <innerBoundaryIs></p><p>  <LinearRing></p><p>  <coordinates>60.0,60.0 60.0,90.0 90.0,90.

51、0 90.0,60.0 60.0,60.0</ coordinates></p><p>  </LinearRing></p><p>  </innerBoundaryIs></p><p>  </Polygon></p><p> ?。ㄋ模缀螆D形集合的編碼</p><

52、;p>  GML Geometry schema所預(yù)先定義的幾何圖形集合(geometry collection),可分為同質(zhì)幾何圖形集合(homogeneous geometry collection)及異質(zhì)幾何圖形集合(heterogeneous geometry collection)兩種。</p><p>  所謂的同質(zhì)幾何圖形集合(homogeneous geometry collection)是

53、指同類(lèi)型幾何元素的集合,包括 MultiPoint、MultiLineString及MultiPolygon等三種。以下以MultiLineString為例,在本例中 MultiLineString幾何圖形集合擁有三個(gè)LineString的成員:</p><p>  <MultLineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4

54、326"></p><p>  <lineStringMember></p><p>  <LineString></p><p>  <coord><X>56.1</X><Y>0.45</Y></coord></p><p>  

55、<coord><X>67.23</X><Y>0.98</Y></coord></p><p>  </LineString></p><p>  </lineStringMember></p><p>  <lineStringMember></p>

56、;<p>  <LineString></p><p>  <coord><X>46.71</X><Y>9.25</Y></coord></p><p>  <coord><X>56.88</X><Y>10.44</Y></co

57、ord></p><p>  </LineString></p><p>  </lineStringMember></p><p>  <LineStringMember></p><p>  <LineString></p><p>  <coord>

58、;<X>324.1</X><Y>219.7</Y></coord></p><p>  <coord><X>0.45</X><Y>4.56</Y></coord></p><p>  </LineString></p><p&g

59、t;  </lineStringMember></p><p>  </MultiLineString></p><p>  所謂的異質(zhì)幾何圖形集合(homogeneous geometry collection)是指不同類(lèi)型幾何元素的集合,GML Geometry schema中的MultiGeometry元素即是異質(zhì)幾何圖形集合,它的成員可以包括Points、

60、LineStrings、Polygons、MultiPoints、 MultiLineStrings、MultiPolygon等幾何圖形元素、及其它的幾何圖形集合(geometry collection)。</p><p>  以下是一個(gè)異質(zhì)幾何圖形集合的instance,它包含Point、LineString及Polygon等三種不同類(lèi)型幾何元素的成員:</p><p>  <Mu

61、ltiGeometry gid="c731" srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"></p><p>  <geometryMember></p><p>  <Point gid="P6776"></p><

62、p>  <coord><X>50.0</X><Y>50.0</Y></coord></p><p><b>  </Point></b></p><p>  </geometryMember></p><p>  <geometryMem

63、ber></p><p>  <LineString gid="L21216"></p><p>  <coord><X>0.0</X><Y>0.0</Y></coord></p><p>  <coord><X>0.0</X&

64、gt;<Y>50.0</Y></coord></p><p>  <coord><X>100.0</X><Y>50.0</Y></coord></p><p>  </LineString></p><p>  </GeometryMembe

65、r></p><p>  <geometryMember></p><p>  <Polygon gid="_877789"></p><p>  <outerBoundaryIs></p><p>  <LinearRing></p><p>

66、  <coordinates>0.0,0.0 100.0,0.0 50.0,100.0 0.0,0.0</coordinates></p><p>  </LinearRing></p><p>  </outerBoundaryIs></p><p>  </Polygon></p><

67、;p>  </geometryMember></p><p>  </MultiGeometry></p><p>  (五)具有幾何圖形的feature的編碼</p><p>  GML 2.1.1版提供了一組定義好的幾何圖形屬性(geometry property),將某些類(lèi)型的幾何圖形與feature產(chǎn)生關(guān)聯(lián)。</p>

68、<p>  我們繼續(xù)前面的員工范例,為其加上一個(gè)點(diǎn)的屬性,稱為 location (location是已定義于GML Feature schema中的pointProperty的別名),則可以得到下列的結(jié)果:</p><p>  <Employee fid="D1123"></p><p>  <gml:description>內(nèi)政

69、部信息中心的員工</gml:description></p><p>  <name>黃旭初</name></p><p>  <age>41</age></p><p>  <nickName>小黃</nickName></p><p>  <nick

70、Name>阿初</nickName></p><p>  <gml:location></p><p>  <gml:point></p><p>  <gml:coord><gml:x>1.0</gml:x><gml:y>1.0</gml:y></gml:c

71、oord></p><p>  </Gml:point></p><p>  </gml:location></p><p>  </Employee></p><p>  其相對(duì)應(yīng)的application schema如下:</p><p>  <element nam

72、e="Employee" type="ex:EmployeeType" substitutionGroup="gml:_Feature"/></p><p>  <complexType name="EmployeeType"></p><p>  <complexContent>

73、</p><p>  <exten.sion base="gml:AbstractFeatureType"></p><p>  <sequence></p><p>  <element name="name" type="string"/></p>&l

74、t;p>  <element name="age" type="integer"/></p><p>  <element name="nickName" type="string" minOccurs="0" maxOccurs="unbounded"/><

75、/p><p>  <element ref= gml:location /></p><p>  </sequence></p><p>  </extension></p><p>  </complexContent></p><p>  </complexType

76、></p><p>  我們亦可以將上面的location屬性重新命名成一個(gè)新的屬性名稱employeeLocation,供application schema全體使用,則上面application schema改寫(xiě)如下:</p><p>  <Element name="Employee" type="ex:EmployeeType"

77、substitutionGroup="gml:_Feature"/></p><p>  <element name="employeeLocation" type="gml:PointPropertyType" SubstitutionGroup="gml:pointProperty"/></p>&

78、lt;p>  <complexType name="EmployeeType"></p><p>  <complexContent></p><p>  <extension base="gml:AbstractFeatureType"></p><p>  <sequence

79、></p><p>  <element name="name" type="string"/></p><p>  <element name="age" type="integer"/></p><p>  <element name="

80、nickName" type="string" minOccurs="0" maxOccurs="unbounded"/></p><p>  <element ref= ex:employeeLocation /></p><p>  </sequence></p><

81、p>  </extension></p><p>  </complexContent></p><p>  </complexType></p><p> ?。ゝeature集合的編碼</p><p>  feature集合(feature collection)使用featureMember屬

82、性來(lái)包含多個(gè)feature或其它的 feature collection。以一個(gè)城市模型的feature collection為例,它包含道路及河流等資料,則其可能的 GML instance如下:</p><p>  <CityModel fid="Cm1456"></p><p>  <dateCreated>Feb 2000</dat

83、eCreated></p><p>  <gml:featureMember></p><p>  <River fid="Rv567">....</River></p><p>  </gml:featureMember> </p><p>  <gml:fea

84、tureMember></p><p>  <River fid="Rv568">....</River></p><p>  </gml:featureMember></p><p>  <gml:featureMember></p><p>  <Road f

85、id="Rd812">....</Road></p><p>  </gml:featureMember></p><p>  </CityModel></p><p>  以下是相對(duì)應(yīng)的application schema,注意其中g(shù)ml:_Feature Collection及gml:Abstract

86、 Feature Collection Type的宣告:</p><p>  <element name="CityModel" type="ex:CityModelType" substitutionGroup="gml:_FeatureCollection"/></p><p>  <element name

87、="River" type="ex:RiverType"substitutionGroup="gml:_Feature"/></p><p>  <element name="Road" type="ex:RoadType"substitutionGroup="gml:_Feature&quo

88、t;/></p><p>  <complexType name="CityModelType"></p><p>  <complexContent></p><p>  <extension base="gml:AbstractFeatureCollectionType"><

89、/p><p>  <sequence></p><p>  <element name="dateCreated" type="month"/></p><p>  </sequence></p><p>  </extension></p>&

90、lt;p>  </complexContent></p><p>  </ComplexType></p><p>  <ComplexType name="RiverType"></p><p>  <complexContent></p><p>  <ext

91、ension base="gml:AbstractFeatureType"></p><p>  <sequence>....</sequence></p><p>  </extension></p><p>  </complexContent></p><p> 

92、 </ComplexType></p><p>  <ComplexType name="RoadType"></p><p>  <complexContent></p><p>  <extension base="gml:AbstractFeatureType"></

93、p><p>  <sequence>.....</sequence></p><p>  </extension></p><p>  </complexContent></p><p>  </complexType></p><p>  而feature co

94、llection中的成員亦可以是儲(chǔ)存在遠(yuǎn)程的feature,其間以Xlink鏈接。我們同樣以上面的城市模型為例,可以在不修改原來(lái)的application schema的情況下,加入儲(chǔ)存在遠(yuǎn)程的河流資料,如下:</p><p>  <CityModel fid="Cm1456"></p><p>  <dateCreated>Feb 2000<

95、;/dateCreated></p><p>  <gml:featureMember xlink:type="simple" xlink:href="http://www.myfavoritesite.com/rivers.xml#Rv567"/></p><p>  <gml:featureMember xlink:typ

96、e="simple" xlink:href="http://www.myfavoritesite.com/rivers.xml#Rv568"/></p><p>  <gml:featureMember></p><p>  <Road fid="Rd812">....</Road><

97、;/p><p>  </gml:featureMember></p><p>  </CityModel></p><p>  例中以xlink:href屬性指向遠(yuǎn)程的河流對(duì)象。</p><p> ?。ㄆ撸ゝeature的關(guān)聯(lián)數(shù)據(jù)的編碼</p><p>  XML文件結(jié)構(gòu)的主要目的,是為了描述資料、

98、及資料內(nèi)部組成組件間的關(guān)系。GML以巢狀結(jié)構(gòu)的包含(containment)、及鏈接(linking)來(lái)描述資料間的關(guān)系。</p><p>  以三筆土地(LandParcel)之間的相鄰關(guān)系為例,以GML編碼的instance如下:</p><p>  <LandParcel fid="Lp2034"></p><p>  <

99、area>2345</area></p><p>  <gml:extentOf>...</extentOf></p><p>  <adjacentTo xlink:type="simple" xlink:href="#Lp2035"/></p><p>  <ad

100、jacentTo xlink:type="simple" xlink:href="#Lp2036"/></p><p>  </LandParcel></p><p><b>  ....</b></p><p>  <LandParcel fid="Lp2035&quo

101、t;></p><p>  <area>9812</area></p><p>  <gml:extentOf>...</extentOf></p><p>  <AdjacentTo xlink:type="simple" xlink:href="#Lp2034"/

102、></p><p>  <adjacentTo xlink:type="simple" xlink:href="#Lp2036"/></p><p>  </LandParcel></p><p><b>  ....</b></p><p>  &l

103、t;LandParcel fid="Lp2036"></p><p>  <area>8345</area></p><p>  <gml:extentOf>...</extentOf></p><p>  <adjacentTo xlink:type="simple"

104、; xlink:href="#Lp2034"/></p><p>  <adjacentTo xlink:type="simple" xlink:href="#Lp2035"/></p><p>  </LandParcel></p><p>  例中以adjacenTo屬性來(lái)

105、表示該筆土地與哪一筆土地相鄰。上例所對(duì)應(yīng)的application schema如下:</p><p>  <element name="LandParcel" type="ex:LandParcelType" substitutionGroup="gml:_Feature"/></p><p>  <elemen

106、t name="adjacentTo" type="ex:AdjacentToType" substitutionGroup="gml:featureMember" /></p><p>  <complexType name="LandParcelType"></p><p>  <c

107、omplexContent></p><p>  <extension base="gml:AbstractFeatureType"></p><p>  <sequence></p><p>  <element name="area" type="integer"/&

108、gt;</p><p>  <element ref="gml:extentOf"/></p><p>  <element ref="ex:adjacentTo" minOccurs="0" maxOccurs="unbounded"/></p><p>  &

109、lt;/sequence></p><p>  </extension></p><p>  </complexContent></p><p>  </complexType></p><p>  <complexType name="AdjacentToType">

110、</p><p>  <complexContent></p><p>  <restriction base="gml:FeatureAssociationType"></p><p>  <sequence></p><p>  <element ref="ex:La

111、ndParcel"/></p><p>  </sequence></p><p>  </restriction></p><p>  </complexContent></p><p>  </complexType></p><p>  上例亦可以用

112、另一種方式來(lái)表現(xiàn)相鄰?fù)恋刂g的關(guān)系,我們可以定義一個(gè)稱為"相鄰?fù)恋?AdjcentPair)" 的feature type,它有一個(gè)"common Boundary Length"屬性紀(jì)錄共同邊界的長(zhǎng)度,并以"adjacenTo"屬性來(lái)紀(jì)錄相鄰的土地,以GML編碼的案例如下:</p><p>  <LandParcel fid="Lp20

113、34"></p><p>  <area>2345</area></p><p>  <gml:extentOf>...</extentOf></p><p>  </LandParcel></p><p><b>  ....</b></

114、p><p>  <LandParcel fid="Lp2035"></p><p>  <area>9812</area></p><p>  <gml:extentOf>...</extentOf></p><p>  </LandParcel><

115、/p><p><b>  ....</b></p><p>  <AdjacentPair fid="Ad1465"></p><p>  <commonBoundaryLength>231</commonBoundaryLength></p><p>  <ad

116、jacentTo xlink:type="simple" xlink:href="#Lp2034"/></p><p>  <adjacentTo xlink:type="simple" xlink:href="#Lp2035"/></p><p>  </Adjacent><

117、;/p><p>  對(duì)應(yīng)的application schema如下:</p><p>  <element name="LandParcel" type="ex:LandParcelType" substitutionGroup="gml:_Feature"/></p><p>  <elem

118、ent name="adjacentTo" type="ex:AdjacentToType" substitutionGroup="gml:featureMember"/></p><p>  <element name="AdjacentPair" type="ex:AdjacentPairType"

119、 substitutionGroup="gml:_Feature"/></p><p>  <complexType name="LandParcelType"></p><p>  <complexContent></p><p>  <extension base="gml:A

120、bstractFeatureType"></p><p>  <sequence></p><p>  <element name="area" type="integer"/></p><p>  <element ref="gml:extentOf"/>

121、;</p><p>  <!注意 adjacentTo 已經(jīng)移除 --></p><p>  </sequence></p><p>  </extension></p><p>  </complexContent></p><p>  </ComplexType

122、></p><p>  <complexType name="AdjacentToType"></p><p>  <complexContent></p><p>  <Restriction base="gml:FeatureAssociationType"></p>

123、<p>  <sequence></p><p>  <element ref="ex:LandParcel"/></p><p>  </sequence></p><p>  </restriction></p><p>  </complexConte

124、nt></p><p>  </complexType></p><p>  <complexType name="AdjacentPairType"></p><p>  <complexContent></p><p>  <extension base="gm

125、l:AbstractFeatureType"></p><p>  <sequence></p><p>  <element name="commonBoundaryLength" type="integer"/></p><p>  <element ref="ex:

126、adjacentTo" minOccurs="2" maxOccurs="2"/></p><p>  </Sequence></p><p>  </extension></p><p>  </complexContent></p><p>  &

127、lt;/complexType></p><p>  四、建構(gòu)應(yīng)用領(lǐng)域的application schema的規(guī)則</p><p>  為以GML編碼來(lái)建構(gòu)某應(yīng)用領(lǐng)域的數(shù)據(jù)結(jié)構(gòu)(application schema),以下的規(guī)則必須遵循(限于篇幅相關(guān)范例請(qǐng)參GML 2.1.1規(guī)格書(shū)5.2章節(jié)內(nèi)容):</p><p> ?。ㄒ唬┒x新的feature類(lèi)型<

128、/p><p>  application schema的設(shè)計(jì)者可以創(chuàng)造自己的feature或feature collection的類(lèi)型,但必須是GML類(lèi)型 gml:AbstractFeatureType 或gml: Abstract Feature Collection Type的子類(lèi)型。</p><p> ?。ǘ┒x新的幾何圖形類(lèi)型(geometry type)</p>&l

129、t;p>  我們可以依需要?jiǎng)?chuàng)造自己的幾何圖形類(lèi)型,但必須是GML類(lèi)型gml:AbstractGeometryType 或gml:GeometryCollectionType的子類(lèi)型。</p><p> ?。ㄈ┒x新的幾何圖形的屬性(geometry property)</p><p>  我們可以在上節(jié)自己所定義的新幾何圖形類(lèi)型中,創(chuàng)造自己的幾何圖形屬性,但必須是gml:Geome

130、tryPropertyType的子類(lèi)型。</p><p> ?。ㄋ模┬鎡arget namespace</p><p>  我們必須為我們的application schema宣告一個(gè)target namespace,在schema中所宣告的元素及其類(lèi)型定義,均位于這個(gè)namespace中。Namespace主要用來(lái)避免元素名稱的沖突,在分布式的網(wǎng)絡(luò)環(huán)境中,不同的XML文件中可能使用了相

131、同名稱的元素,宣告適當(dāng)?shù)膎amespace可以解決元素名稱沖突的問(wèn)題。特別注意的是namespace中的URI并不需要真正指到schema的文件,它只是一種機(jī)制,用來(lái)區(qū)分不同文件的元素名稱。</p><p>  (五)引進(jìn)不同namespace的schema</p><p>  以GML編碼的文件,可以從多個(gè)不同的namespace引用不同來(lái)源的schema,以下圖為例:</p>

132、;<p>  圖4 .使用多個(gè)namespace來(lái)源的schema</p><p>  圖中schema-A及schema-B位于同一個(gè)namespace,所以schema-B使用<<include> >來(lái)引進(jìn)schema-A的內(nèi)容;schema-A與GML feature schema位于不同的namespace,所以schema-A使用<<import>

133、>來(lái)引進(jìn)GML feature的內(nèi)容。</p><p> ?。┦褂胹ubstitution group</p><p>  在全域元素(global element)中所定義的"substitution group",可以取代GML元素,并為整個(gè)GML application schema所使用。</p><p> ?。ㄆ撸┬骖~外的屬

134、性</p><p>  GML提供了一些預(yù)先定義好的幾何圖形屬性(geometric property),包括location、centerLineOf、extentOf等等,我們也可以使用"substitution group"來(lái)給它們不同的命名。</p><p> ?。ò耍┒x新的feature關(guān)聯(lián)類(lèi)型</p><p>  我們可以創(chuàng)造自己的

135、feature關(guān)聯(lián)類(lèi)型(feature association type),而這必須由gml:FeatureAssociationType延伸而來(lái)。</p><p>  五、應(yīng)用領(lǐng)域application schema 的范例</p><p>  (一)范例一:臺(tái)北市</p><p>  說(shuō)明:有一個(gè)城市模型(CityModel)的資料集(feature colle

136、ction),它有三個(gè)屬性,分別是幾何圖形名稱為"臺(tái)北市 、資料生產(chǎn)日期(dateCreated) 為"Feb 2000"、坐標(biāo)范圍(boundedBy)。</p><p>  本城市模型資料集包含兩個(gè)feature成員,第一個(gè)成員是"淡水河",為河流類(lèi)型(RiverType),它有一個(gè)中心線 (cenLineOf) 的幾何圖形屬性。第二個(gè)成員是"南京東

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論