2016-01-31 13 views
5

Używam kątowych i ulotek i chcę zbudować mapę z różnymi znacznikami, np .: statki i mosty. Chcę je aktualizować indywidualnie, bez usuwania i ustawiania wszystkich znaczników. Kiedy więc mam nowe statki, chcę tylko wywołać markery statków, zaktualizować je, a znaczniki mostów pozostaną takie same.różne grupy znaczników w liściach

Teraz próbowałem coś takiego:

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 
     } 
    }); 

Ale to nie działa, ponieważ pojawia się następujący błąd (po ustawieniu markers-nested: true moim zdaniem):

Należy dodać warstwy do dyrektywy, jeśli znaczniki zamierzają użyć tej funkcji.

Jednak dlaczego potrzebuję warstw, jeśli chcę tylko wywołać różne grupy znaczników na tej samej warstwie. Po prostu nie chcę aktualizować ich wszystkich naraz.

Więc może ktoś może mi powiedzieć, jak uzyskać oddzielne grupy znaczników i jak je wywołać, aby je zaktualizować.

+0

Poprzez aktualizację znaczy zmienić '' lng' lat' i współrzędne? – chrki

+0

tak na przykład. Lub po prostu usuń wszystkie znaczniki statków i dodaj nowe. – threxx

+0

Czy możesz utworzyć fragment lub plunkera? O wiele łatwiej odpowiedzieć w ten sposób .. –

Odpowiedz

1

Dla każdego rodzaju zagnieżdżonego markera trzeba utworzyć własną warstwę grupy tak, mogą być puste:

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 
     } 
    } 
} 

Dzięki temu, że będzie trzeba także przenieść warstwę bazową OSM w warstwach. obiekt bazowy, ale działa w ten sposób markers-nested="true".

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

Powiązane problemy