2017-09-01 2 views
0

Ich habe versucht, eine Logik hinzuzufügen, durch die, wenn Sie anfangen, die Karte um den Marker zu ziehen, in der Mitte der Karte bleiben und dann den Lat und lng der neuen Position zurückgeben. Bitte beachten Sie die Plunker von dem, was ich dank getan haben PlunkerZentraler Flugzettelmarker immer wenn Karte sich bewegt

var location = {lat: -33.8830, lng: 151.2166}; 

var mainMarker = { 
      lat: location.lat, 
      lng: location.lng, 
      focus: true, 
      draggable: false 
    }; 

    var vm = angular.extend(this, { 
     center: { 
      lat: location.lat, 
      lng: location.lng, 
      zoom: 17 
     }, 
     markers: { 
      mainMarker: angular.copy(mainMarker) 
     }, 
     defaults: { 
      zoomControl: false 
     }, 
     tiles: { 
      url: 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' 
     } 
    }); 

Antwort

0

Die Markerposition (positioniert in der Mitte auf der Karte) aktualisiert werden, wenn der Karte bewegt sich wie folgt aus:

$scope.$on('leafletDirectiveMap.drag', function(event,args){ 
     //get the Leaflet map from the triggered event. 
     var map = args.leafletEvent.target; 
     var center = map.getCenter(); //get map center 

     //update(recenter) marker 
     $scope.vm.markers.mainMarker.lat = center.lat; 
     $scope.vm.markers.mainMarker.lng = center.lng; 
}); 

Updated plunker

Verwandte Themen