Ich arbeite an einem Projekt, das die Verwendung von Karten beinhaltet, wo es Operationen gibt, wie plotting marker
oder polylines
.strukturieren Sie den angularjs Code, um mehrere Kartenserviceprovider zu unterstützen
Die Funktionalitäten funktionieren gut, aber ich habe Schwierigkeiten bei der Verwendung mehrerer Karten-Service-Provider.
Ich möchte denselben Set-Vorgang mit einer offenen Schicht durchführen. Um das zu tun, muss ich mich an allen Orten verändern, wie Controller und Ansichten. Außerdem habe ich einen Service, der die Daten im gewünschten Format an die Steuerung liefert.
Aber ich bin mir nicht sicher, wie Sie eine Abstraktionsschicht für verschiedene Karten-Service-Provider auf der Client-Seite erstellen.
Ich habe alles kartenbezogenen Logik in der Steuerung
Grundsätzlich ist ich für einige Richtlinien und Anregung suchen, die zwischen Multiplikator-Dienstleister mit minimaler Anzahl von Änderungen wechseln helfen.
Folgt meinem Controller-Code:
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();
})
Gibt es einen besseren Weg, es zu tun?
Es gibt so viele andere abhängige Funktionen, und ich habe nicht auf Einfachheit eingestellt.
ich die Folge Idee versucht:
Schrieb zwei verschiedene Controller und änderte den Controller in der Strecke, aber wenn die jede Änderung i buchstäblich die gleiche Menge von Methoden, um andere Paste wird in einem Controller gemacht kopiert ich nicht in der Lage bin um einen sauberen Code zu erhalten
Hinweis: Die Anwendung kann mehrere Dienstleister wie Google Maps, Openalyers und Prospekt unterstützen.
danke ich will mein Controller machen als Orchestrierung basierend auf den Parametern zu handeln, dh, wenn sagen openlayers bestimmte Funktionalität sollte durch die gepflückt werden Controller oder wenn es Google Map ist eine andere Reihe von spezifischen Funktionen sollte von der Steuerung abgeholt werden und entsprechende Sache, die was ist zu tun –