2016-01-31 13 views
5

Sto usando Angolare e volantino e voglio costruire una mappa con diversi marcatori, ad es .: navi e ponti. Voglio aggiornarli individualmente senza rimuovere e impostare nuovamente tutti i marcatori. Quindi, quando ho nuove navi, voglio solo chiamare i segnalini nave, aggiornarli e gli indicatori del ponte rimangono gli stessi.gruppi di marker diversi nel programma

In questo momento, ho provato qualcosa di simile:

angular.module('angularMapApp') 
    .controller('MainCtrl', ['$scope', 'RequestService', 'setShipMarkers', '$q', function($scope, RequestService, setShipMarkers, $q) { 

    angular.extend($scope, { 
     hamburg: { 
     lat: 53.551086, 
     lng: 9.993682, 
     zoom: 13 
     }, 
     markers: { 
     ships: { 
      m1: { 
       lat: 42.20133, 
       lng: 2.19110 
      }, 
      m2: { 
       lat: 42.21133, 
       lng: 2.18110 
      } 

     }, 
     bridges: { 
      m3: { 
       lat: 42.19133, 
       lng: 2.18110 
      }, 
      m4: { 
       lat: 42.3, 
       lng: 2.16110 
      } 

     } 
     }, 
     defaults: { 
     tileLayer: 'http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png', 
     zoomControlPosition: 'topright', 
     tileLayerOptions: { 
      opacity: 0.9, 
      detectRetina: true, 
      reuseTiles: true, 
     }, 
     scrollWheelZoom: false 
     } 
    }); 

ma questo non funziona, mentre ottengo il seguente errore (dopo aver impostato markers-nested: true a mio avviso):

è necessario aggiungere livelli alla direttiva se i marcatori useranno questa funzionalità.

Tuttavia, perché ho bisogno di livelli, se voglio solo chiamare gruppo di marcatori diversi sullo stesso livello. Semplicemente non voglio aggiornarli tutti in una volta.

Quindi forse qualcuno può dirmi, come ottenere gruppi di marker separati e come chiamarli per aggiornarli.

+0

Con l'aggiornamento si intende modificare il '' lat' e lng' coordinate? – chrki

+0

sì per esempio. Oppure rimuovi tutti gli indicatori di spedizione e aggiungi alcuni nuovi – threxx

+0

Puoi creare uno snippet o plunker? Sarà molto più facile rispondere in questo modo .. –

risposta

1

Per ogni tipo di marcatore nidificato è necessario creare un proprio livello di gruppo come questo, possono essere vuoto:

layers: { 
    overlays: { 
     ships: { // use the same name as in the marker object 
      name: "Ships", 
      type: "group", 
      visible: true 
     }, 
     bridges: { // use the same name as in the marker object 
      name: "bridges", 
      type: "group", 
      visible: true 
     } 
    } 
} 

Così facendo si avrà anche per spostare il livello di base OSM negli strati. oggetto baselayers, ma markers-nested="true" funziona in questo modo.

Demo: http://plnkr.co/edit/HQx8bQmmsFUGcLxYt95N?p=preview

Problemi correlati