2016-08-30 12 views
0

Googleマップのズームを変更する必要があります。コード:ズームを動的に変更する

function _initMap(vm) { 
     vm.windowOptions = { 
      show: false 
     }; 

     var latSum = 0; 
     var longSum = 0; 
     for (var i = 0, length = vm.markers.length; i < length; i++) { 
      //calculate center of map (1st part) 
      latSum += vm.markers[i].coords.latitude; 
      longSum += vm.markers[i].coords.longitude; 
      //assign an icon 
      vm.markers[i].iconUrl = getIconUrl(vm.markers[i].deviceType); 
     } 
     var centeredLatitude = latSum/vm.markers.length; 
     var centeredLongitude = longSum/vm.markers.length; 

     vm.control = {}; 

     vm.map = { 
      center: setCenterMap(), 
      options: getMapOptions(), 
      zoom: setMapZoom(), 
      events: { 
       click: function (mapModel, eventName, originalEventArgs) { 
        var e = originalEventArgs[0]; 
        $log.log('gz', e.latLng.lat() + ' ' + e.latLng.lng()); 
        console.log('xxx', mapModel); 
       } 
      }, 
      show: true, 
      refresh: function (a, b, c, d) { 
       vm.map.control.refresh(); 

      } 
     }; 

     vm.clusterOptions = { 
      minimumClusterSize: 2, 
      zoomOnClick: true, 
      styles: [{ 
       url: 'assets/images/markers/m1.png', 
       width: 53, 
       height: 53, 
       textColor: 'white', 
       textSize: 17, 
       fontFamily: 'Open Sans' 
      }], 
      averageCenter: true, 
      clusterClass: 'cluster-icon' 
     }; 

     vm.window = { 
      location: undefined, 
      templateUrl: 'app/components/maps/maps.info.template.html', 
      show: false, 
      options: getMapWindowOptions() 
     }; 

     vm.clickMarker = function (marker, event, object) { 
      vm.window.show = false; 
      vm.window.details = object.details; 
      vm.window.location = object.coords; 
      vm.window.show = true; 
      vm.sendChoosenDeviceToController(object); 
      angular.element('#right-menu').focus(); 
     }; 

     vm.closeClick = function() { 
      vm.window.show = false; 
     } 
    } 

が、コード:私は、中心とズームを変更しない方法センターとズームを呼び出す

 center: setCenterMap() 
     zoom: setMapZoom() 

。センターとズームを動的に更新するにはどうすればよいですか?マップの開始時にメソッドが適切に実行されますが、初期化後は変更したくありません。

答えて

1

ソリューションは、単にだった:

scope.map.center = { 
    'latitude': scope.markers[i].coords.latitude, 
    'longitude': scope.markers[i].coords.longitude 
}; 

Googleマップは、その変更を知っていて、素敵な作品。

関連する問題