2015-06-25 2 views
1

При построении нескольких маркеров на карте Google я получил Uncaught RangeError: Максимальный размер стека вызовов превышен сообщение об ошибке в журнале для Ionic framework.Uncaught RangeError: Максимальный размер стека вызовов превышен log

Я использую плагин Google Кордовы Google для карты. Может ли кто-нибудь выяснить, где ошибка в моем коде?

var autocompleteFrom = new google.maps.places.Autocomplete(inputFrom, options); 
var autocompleteto = new google.maps.places.Autocomplete(inputto,options); 

google.maps.event.addListener(autocompleteFrom, 'place_changed', function() { 
    var bounds = new google.maps.LatLngBounds(); 
    var place = autocompleteFrom.getPlace(); 
    $rootScope.fromLat = place.geometry.location.lat(); 
    $rootScope.fromLng = place.geometry.location.lng(); 
    $rootScope.from = place.formatted_address; 
    $scope.placesfrom = $rootScope.from; 
    fromlat = $rootScope.fromLat; 
    fromlng = $rootScope.fromLng; 
    var Mapoptions ={ 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     mapTypeControl:false, 
     zoomControl:false, 
     draggable:true, 
     mapTypeControl:false, 
     scaleControl:false, 
     streetViewControl:false, 
     overviewMapControl:false, 
     rotateControl:true 
    } 
    var googlemaphome = document.getElementById('googlemap-home'); 
    var Map = new google.maps.Map(googlemaphome,Mapoptions); 
    var marker; 
    var markers = [ 
      [fromlat,fromlng], 
      [28.6328,77.2197] 
    ]; 

    for(var i = 0; i < markers.length; i++) { 
     var position = new google.maps.LatLng(markers[i][1], markers[i][2]); 
     bounds.extend(position); 
     marker = new google.maps.Marker({ 
      position: position, 
      icon: 'img/marker.png', 
      map: Map 
     }); 
    } 
    Map.fitBounds(bounds); 
    var boundsListener = google.maps.event.addListener((Map), 'bounds_changed', function(event) { 
     this.setZoom(14); 
     google.maps.event.removeListener(boundsListener); 
    }); 
    $scope.$apply(); 
}); 

`

ответ

1

Я думаю, что вопрос здесь:

var position = new google.maps.LatLng(markers[i][1], markers[i][2]);

Поскольку подмассивов в вашем markers[] массиве только 2 элемента, а индекс для массивов начинается с 0, я верю тебе следует изменить эту строку на

var position = new google.maps.LatLng(markers[i][0], markers[i][1]); //use 0 and 1 instead of 1 and 2

Смежные вопросы