GML

GML

地理標記語言(外語全稱:Geography MarkupLanguage、外語縮寫:GML),它由開放式地理信息系統協會(外語縮寫:OGC)於1999年提出,並得到了許多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。GML能夠表示地理空間對象的空間數據和非空間屬性數據。GML的Geometry Schema既包含了用於抽象幾何元素和具體點、線、多邊形空間幾何元素的類型定義,也包含了用於基礎地物類型的複雜類型定義。GML作為一個“開放的”標準,並沒有強制採用它的用戶使用確定的XML標識,而是提供了一套基本的幾何對象tag、公共的數據模型,以及採用自建和共享套用Schema的機制。

GML

GML是XML在地理空間信息領域的套用。利用GML可以存儲和發布各種特徵的地理信息,並控制地理信息在Web瀏覽器中的顯示。

地理空間網際網路作為全球信息基礎架構的一部分,已成為Internet上技術追蹤的熱點。許多公司和相關研究機構通過Web將眾多的地理信息源集成在一起,向用戶提供各種層次的套用服務,同時支持本地數據的開發和管理。GML可以在地理空間Web領域完成了同樣的任務。GML技術的出現是地理空間數據管理方法的一次飛躍。

GML的由來

GML (Geography Markup Language)即地理標識語言,它由OGC(開放式地理信息系統協會)於1999年提出,並得到了許多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。GML能夠表示地理空間對象的空間數據和非空間屬性數據。

2000年5月,OGC推出了基於XML DTD (Document Type Definitions,文檔類型定義)和RDF(Resource Description Frameworks,資源描述框架)的GML 1.0版。2001年2月,OGC又推出了完全基於XML Schema 的GML 2.0版。2003年2月,GML 3.0版正式發布。

OGC推出GML的目的如下:

◆ 提供適用於Internet環境的空間信息編碼方式,用於數據傳輸和存儲;

◆ 能夠擴展,用以支持對空間信息的多樣化需求,不管是用於對空間信息的單純描述,還是進行更深層次的分析使用;

◆ 以一種可擴展和標準化的方式為基於Web的GIS建立良好的基礎;

◆ 允許對地理空間數據進行高效率編碼;

◆ 提供了一種容易理解的空間信息和空間關聯的編碼方式;

◆ 實現空間和非空間數據的內容和表現形式的分離;

◆ 易於將空間信息和非空間信息進行整合;

◆ 易於將空間幾何元素與其它空間或非空間元素連結起來;

◆ 提供一系列公共地理建模對象,從而使各自獨立開發的套用之間互操作成為可能。

GML為網路時代的地理空間Web領域提供了一種“開放式”的標準,它的出發點是空間數據編碼,包括分散式空間數據的編碼。

GML的組成

在介紹GML組成之前,首先需要說明一下什麼是地理空間特徵(Geographic Feature)。地理空間特徵是對真實世界現象的一種抽象,當這種抽象與某一地理位置相關時,就表現為地理空間特徵。現實世界的數位化表示構成了一個特徵集,特徵由其屬性說明,屬性由一個三元組(屬性名、屬性類型、屬性值)表示,特徵的定義給出了屬性的個數和每個屬性的名字和類型。概括地講,地理空間特徵就是擁有地理空間位置屬性的特徵。多種特徵合併在一起形成一個“特徵集”(Feature Collection),特徵集也可以當作單個特徵使用,並且也有自己的屬性。

GML目前已推出了三個版本,其中1.0版和2.0版的組成和實現方式存在較大差異,而3.0版幾乎完全和2.0版兼容。下面將對這三個版本進行粗略比較。

◆ GML 1.0

GML 1.0版是基於XML DTD和RDF,這是一種雖然笨拙但很有用的結合。DTD歷史悠久並被廣泛採用,但是不支持類型繼承、基本語義模型和名字空間。RDF則較少使用,卻支持名字空間、分散式Schema的綜合、類型繼承和一個簡單的語義模型。

GML 1.0版以下面三個Profile的形式發布。

Profile 1:適用於單純基於DTD的解決方案,而不準備開發自己的套用DTD,或期望獲得的數據依賴於已有的DTD集的情況。Profile 1需要用到GML特徵和GML幾何DTD。

Profile 2:適用於單純基於DTD的解決方案,但準備開發自己的套用DTD,或期望獲得用參考DTD編碼的數據情況。Profile 2要求使用者利用GML的幾何DTD創建一個專用的特徵DTD。

Profile 3:適用於那些準備使用RDF和RDF Schema的開發者。這些開發者需要對地理空間類型結構有更強控制。Profile 3要求使用者利用GML RDF Schema的定義創建一個專用的RDF Schema說明,同時也允許用戶使用以某種方式從RDF Schema導出的DTD或DTD元素。

◆ GML 2.0

GML 2.0版本則完全基於XML Schema,較之1.0版是一個很大的進步。近年來,XML Schema已發展得非常成熟,它同時支持名字空間、分散式Schema的綜合、類型繼承,並已出現大量支持XML Schema的工具和解譯器。因此,GML 2.0版能夠享受Schema帶來的好處,使GML技術更加靈活,越來越多的用戶已開始使用GML 2.0版。

GML 2.0提供了以下三個基本XML Schema,任何基於GML的套用都在這三個Schema的基礎上進行擴展。

geometry.xsd提供了詳細的基本空間幾何組件定義。GML的Geometry Schema既包含了用於抽象幾何元素和具體點、線、多邊形空間幾何元素的類型定義,也包含了用於基礎地物類型的複雜類型定義。

feature.xsd定義了基本的地物特徵/屬性模型。GML以地物特徵(Ferture)為描述空間地理數據的基本單位,而地物特徵又由非空間屬性和空間屬性組成。

xlinks.xsd提供了用於實現連結功能的XLink屬性。該Schema中定義了前兩個基本Schema中要用到的連結屬性。通過這些連結屬性,GML能夠將位於不同數據源的地物特徵,通過連結的方式組織在一個檔案中。

上述三個Schema文檔並不適於單獨使用。它們互相配合,為GML的擴展套用提供了基本類型和結構。其中geometry.xsd和feature.xsd都屬於GML名字空間,xlinks.xsd則屬於XLink名字空間。

GML的三個基礎Schema實際上提供了一套基礎類。通過它們,用戶可以聲明或定義自己的類型,用以命名和區分重要的地物特徵和地物集合特徵。

◆ GML 3.0

GML 3.0版是對GML 2.0版的擴充,並且向後兼容。Schema集合的組織具有了模組化特點,即用戶能夠有選擇地使用所需部分,減化和縮小了執行的尺寸,提供了面向WEB套用、基於對象的地理數據描述語言。此外,3.0版增加了對複雜的幾何實體、拓撲、空間參照系統、元數據、時間特徵和動態數據等的支持,使其更加適合描述現實世界問題,如基於位置服務的行程安排和高速公路設計等。

GML 3.0版新增的主要特性包括:

◆ 增加了複雜的空間幾何元素,如曲線、表面、實體等,允許使用幾何元素集合;

◆ 支持拓撲的存儲,可表示定向的節點、邊、面和三維實體;

◆ 引入了空間參照系統,給出了描述空間系統的框架,並預定義很多公用方案;

◆ 提供建立元數據與特徵(屬性)間聯繫的易於擴充的框架機制;

◆ 增加了時間特徵和描述移動物體的能力,具有標準的年、月、日、時、分、秒模式和位置、速度、方位、加速度等動態特徵。

◆ GML的擴展機制

GML作為一個“開放的”標準,並沒有強制採用它的用戶使用確定的XML標識,而是提供了一套基本的幾何對象tag、公共的數據模型,以及採用自建和共享套用Schema的機制。所有兼容GML的系統,必須使用GML提供的幾何地物tag來表示地物特徵的幾何屬性,但可以通過限制、擴展等機制來創建自己的套用Schema。

目前,越來越多的公司和研究機構開始採用GML語言開發它們的地理空間信息套用。GML語言本身也在不斷發展和完善中,最新推出的GML 3.0版本在空間數據編碼和傳輸、地理對象描述等方面做出了諸多改進。相信在GML等技術的推動下,地理空間Web將日臻成熟,繼而在全球推廣開來。

GML

2D 遊戲製作軟體 GameMaker 內置的程式語言 —— The Game Maker Language ( GML ) 。

GML 高度概括了 2D 遊戲設計能用到的共通編程語句,往往濃縮為一個簡短靈活的函式,是“文字版的按鈕”,使設計遊戲更為靈活。其與圖形界面中的按鈕有對應關係。使用按鈕入門遊戲製作的用戶,可以從“我熟悉的按鈕所對應的 GML ” 來進階學習。

舉例:

我們要做一個跟蹤飛彈。

只需在飛彈的循環動作中添加一行 move_towards_point( Enemy.x , Enemy.y , Speed )

這樣便做好了對 Enemy 跟蹤的飛彈,跟蹤速度為 Speed 。

GML的潛在價值是不可估量的。

在世界遊戲開發領域,我們經常碰到這樣的事情:大家在設計同一種遊戲,卻用的是不同程式語言,怎么交流呢?如同真實世界中,人們出現語言隔閡,可以用手勢、表情與圖畫表達心意,程式設計師之間也可以用大家都理解的“偽代碼”交流。

GML 與這種“偽代碼”相似甚至相等。從某種意義上講,用 GML 表述出來的程式邏輯已經簡潔到極端。當從事複雜的遊戲設計時,使用 GML 來描述結構,其明晰程度可謂首屈一指。隨著獨立遊戲製作界整體水平逐步提高,這種潛在價值將愈加明顯。

這些特色,使得一個 GameMaker 高級用戶,即便是應付複雜遊戲,也能以難以置信的高速製作;即使把遊戲設計作為業餘愛好,也能相對輕鬆步入最高階段 —— 對遊戲引擎結構進行最佳化調整。這都歸功於 GameMaker 作者出色的設計才能。

= .=

相關搜尋

熱門詞條

聯絡我們