什麼是地圖引擎?它和地圖軟件有什麼區別?架構
引擎一詞是英文單詞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引擎完整度的一個重要標誌。開發