我的工作涉及地圖的使用它在哪裏做的業務,如plotting marker
或polylines
的項目。結構angularjs代碼支持多種地圖servcie提供商
功能正常,但我面臨使用多個地圖服務提供商的困難。
我想使用開放層執行相同的設置操作。爲此,我必須在所有地方進行更改,如控制器和視圖。另外,我有一種服務,以所需的格式將數據送入控制器。
但我不知道如何創建在客戶端不同的地圖服務提供商的一個抽象層。
我都在控制器
基本上我在找一些指導和建議,這將有助於有改動的最小數量的倍增器服務提供商之間的切換相關的邏輯地圖。
跟隨我的控制器代碼:
taxiFleetControlPanel.controller("overviewController", function ($scope,$location,sensorService,appService,nodeService,settingService,$timeout,$rootScope,instanceService,assetApiService) {
//google maps
function initMap() {.....}
function addMarker(){.....}
function addpolyLines(){....}
//openlayer maps
function openlayerInitMap() {.....}
function openlayerAddMarker(){.....}
function openlayerAddpolyLines(){....}
if there is requriment to use openalyer map the i will comment initMap(); in the same controller
funtion init(){
initMap();
//openlayerInitMap()
}
init();
})
有沒有更好的辦法做到這一點?
還有很多其他的依賴函數以及我沒有把保持簡單。
我試圖後續想法:
寫了兩個不同的控制器,在該路由改變控制器,但如果任何變化在一個控制器由我會逐字複製粘貼同一套方法,其他我不能夠保持一個乾淨的代碼
注意:該應用程序可以支持多種服務提供商,如谷歌地圖,開戶人員和傳單。
謝謝你,我想我的控制器充當基礎上的參數配器即,如果說的OpenLayers某些特定的功能應該由採摘控制器,或者如果它是谷歌地圖應該由控制器拿起另一組特定的功能,並做相應的事情,這是尋找什麼 –