一、需求:
在web開發中可能遇到這樣的需求:需要一個地圖系統,選擇谷歌或百度地圖來完成地圖的展示,但是該web系統由于特殊性而不允許與外網鏈接,還有就是現在對國家對谷歌網絡限制訪問導致越來越不穩定,或者由于網絡地圖接口變更和升級造成接口失效,因此希望將地圖地系統移植到內網中使用。
二、需要的技術點:
可以將map api分為3個部分來看待:
1、負責與服務器交互的js文件(API)
2、地圖系統提供的應用,例如地址標注、區域標注、周邊搜索等等
3、地圖數據
三、解決方法:
地圖應用系統主要是第2部分的應用開發,一般地地圖應用,例如加載地圖、標注,地圖移動等功能,是完全可以將地圖移植到內網來處理的。
這種方法也適用于自定義周邊搜索,例如需要完成的web功能就是通過查詢,獲取指定范圍內的建筑物、獲取自定的標記(開發本地商戶搜索系統的時候,地圖上商戶數據的維護肯定是有web自己維護,而并非網絡地圖提供的數據,這種場景正好適合)。
下來來說如何將map本地化,可以分為兩個步驟:
1、將map使用的與服務器交互的js文件本地化
這個當然是根據map加載時候,所需要的js下載到本地,以后再應用程序開發的時候,不引用網絡站點上的js,而是換成本地的js文件,并予以修改、替換為對本地js的調用。
2、將map的地圖數據(tiles:瓦片)下載到本地,以及應用的開發
說到地圖數據,需要了解map的一點基礎知識。把在瀏覽器中顯示的地圖,分割成一塊一塊的圖片,稱之為tile,在瀏覽其中顯示地圖的部分,從網絡地圖下載各個tile,然后拼接在一起,就能夠看到完整的一幅地圖。
這樣通過本地地圖接口和地圖數據,基本實現和互聯網地圖API相同的功能。
四、應用案例:
臨沂市統計局《統計基礎信息管理系統》,對企業網格化管理中,使用地圖展示、查詢企業位置。(內外網通用,地圖數據可內外網切換)
地圖模式效果圖如下:
可按條件、按周邊等查詢企業,不同標識顯示。
企業標注可以擴展應用
手動標注或按坐標導入數據。