1. 程式人生 > >GIS中的引擎:地圖引擎

GIS中的引擎:地圖引擎

動力 除了 分析 封裝 搜索引擎 沒有 汽車 百度地圖api 重要

什麽是地圖引擎?它和地圖軟件有什麽區別?

引擎一詞是英文單詞engine的音譯,通常指發動機,就是動力輸出設備。諸如汽車、輪船、飛機的動力提供的核心設備就是引擎。IT領域中,常聽說的有搜索引擎、圖形引擎等。軟件中引擎就是提供一套特定底層功能的實現和接口,其往往基礎而強大,充分滿足上層的應用需要。而通常說的地圖引擎和導航引擎都屬於GIS引擎的一部分。GIS引擎就像汽車的發動機,數據就像油料,只是這個發動機與油料是唯一對應的。

地圖引擎,從應用層層來看,就是一套提供了驅動和管理地理數據,實現渲染、查詢等功能的一套函數庫,所有的應用層軟件只需要調用地圖引擎提供的功能接口就能較容易的完成其功能。常見的地圖引擎有Google Maps API、百度地圖API、高德地圖API、HereMap等。

地圖軟件是架構在地圖引擎之上的應用。地圖軟件可以沒有獨立的地圖引擎,而在軟件中實現地圖引擎的功能,但獨立的地圖引擎可以使軟件的架構更清晰,擴展性和可維護性都有極大的提升。尤其對於多平臺的地圖軟件,獨立的地圖引擎必不可少,否則維護成本倍增。地圖引擎通常會封裝和保護地理數據的組織管理機制,對上層提供地圖移動、放縮、渲染、空間查詢等功能。

通常,在移動GIS中,地圖引擎還包括了導航引擎。導航引擎與地圖引擎的概念一致,導航引擎驅動和管理是拓撲數據,提供的是路線和導引信息。導航引擎通常會封裝和保護幾何數據的拓撲關系和導引數據,對上層提供路線分析、拓撲分析、引導信息的功能。

在GIS的架構的設計中,除了地圖引擎和導航引擎外,有的設計者會把圖形渲染單獨分出來,封裝成獨立的渲染引擎,如2D渲染引擎、3D渲染引擎等。這樣做沒有任何問題,只要能和地圖引擎很好的銜接,這樣的設計是更好的。

通常嵌入式上GIS引擎對其數據要求都是專有的,目的是提高引擎運行效率。各公司或各設計師的引擎設計會與引擎所需數據格式設計緊密銜接,其實通常都是同一團隊在設計。這份數據格式設計是GIS引擎的核心技術之一,數據格式的優劣很大程度上決定到了引擎的效率,所以基本上沒有公司或設計師會公開他們的設計方案,因為這是核心技術機密!所以,你要想在嵌入式設備上開發GIS引擎,就要設計自有的GIS數據格式。

那麽我們能不能就拿MapInfo的MIF或ArcInfo的E00數據做引擎的數據源?答案是肯定的,能!但是你將很難保障引擎的運行效率。通常一些完善的GIS引擎都會提供一些外圍軟件,其中就包括各個大廠交換格式導成自有GIS引擎格式數據的工具,這也是判定一個GIS引擎完整度的一個重要標誌。

GIS中的引擎:地圖引擎