5

Sınırları Google Haritalar örneğine ayarlamaya çalışıyorum ancak başarılı olamayacağım. AngularJS ve angular-google-maps modülünü kullanıyorum. Benim son denemeydi: Benim app.js yılındaGoogle Haritalar sınırlarını angular-google-haritaları ile ayarlayın

<div id="map_canvas"> 
    <ui-gmap-google-map 
     center="map.center" 
     zoom="map.zoom" 
     bounds="map.bounds" 
     options="options"> 

     <div ng-repeat="d in devicesMarkers track by d.id"> 

      <ui-gmap-marker 
       idkey="d.id" 
       coords="d.center" 
       options="d.options"> 
      </ui-gmap-marker> 
      <ui-gmap-circle 
       center="d.center" 
       stroke="d.circle.stroke" 
       fill="d.circle.fill" 
       radius="d.circle.radius" 
       visible="d.options.visible"> 
      </ui-gmap-circle> 

     </div> 

    </ui-gmap-google-map> 
</div> 

yazdım:

(...) 
.controller('TaihMapController', ['$scope', '$log', 'uiGmapGoogleMapApi', function($scope, $log, GoogleMapApi) { 
    $scope.devicesMarkers = devices; 
    $scope.map = { 
     center: { latitude: devices[0].center.latitude, longitude: devices[0].center.longitude }, 
     zoom: 12, 
     bounds: {} 
     // fit: true, 
    }; 
    GoogleMapApi.then(function(maps) { 
     $log.debug(maps); 
     var myBounds = new maps.LatLngBounds(); 
     for (var k = 0; k < devices.length; k++) { 
      var _tmp_position = new maps.LatLng(
       devices[k].center.latitude, 
       devices[k].center.longitude); 
      myBounds.extend(_tmp_position); 
     } 
    $scope.map.bounds = myBounds; 
    $scope.googleVersion = maps.version; 
    // $scope.bounds = myBounds; 
    // $scope.zoom = maps.getZoom(); 
    // maps.fitBounds(myBounds); 
    // $scope.bounds = maps.getBounds(); 

}); 

fonksiyon maps.fitBounds() yok. $scope.map.bounds yaklaşımını deniyorum, ancak düşündüğüm şekilde yanıt vermedim.

+0

alın görünüm (https://github.com/angular-ui/angular-google-maps/blob/master /example/example.html) github ve "sınırları" aramayı deneyin, bununla ilgili birçok kod parçası var. – bjiang

+0

Bu dosyayı okudum, henüz bir başarı yok. Bu özüm, yeni yaklaşımı içerir (önerilen dosyaya göre) https://gist.github.com/vitorcarvalhoml/62f804cd197572f28079 map.center ve map.zoom'u sınırlara göre nasıl ayarlayabilirim? –

cevap

2

docs'a göre, yönerge sınırları, Google harita sınırları ile biraz farklıdır. northeast ve southwest özniteliklerini kendi latitude ve longitude ile açıkça belirtmelisiniz. Aşağıda

çalışması gerekir:

$scope.map.bounds = { 
    northeast: { 
     latitude: myBounds.getNorthEast().lat(), 
     longitude: myBounds.getNorthEast().lng() 
    }, 
    southwest: { 
     latitude: myBounds.getSouthWest().lat(), 
     longitude: myBounds.getSouthWest().lng() 
    } 
}; 
+0

Ve bu değerleri örneğin Angular'ın sabitlerine yerleştirin - iç denetleyicinin ilk kullanımdan sonra çalışmayı durdurmasına neden olun. –

8

sadece uyum = "true" özelliğini (ui-gmap-belirteçleri) ekleyin, açısal-google-haritanın "belirteçler" yönergesini kullanıyorsanız.

Örnek:

<ui-gmap-google-map center="map.center" zoom="map.zoom" options="map.options"> <ui-gmap-markers fit="true" models="markers" coords="'self'"></ui-gmap-markers> </ui-gmap-google-map>

Kaynak: [bu] adresinden https://stackoverflow.com/a/29707965