2013-09-23 4 views
0

У меня есть сценарий, который берет данные из html и использует его для построения маршрутов на карте. Я пытаюсь заставить его взять все маршруты и увеличить, чтобы показать их все. Вот код:map.fitbounds ничего не делает

var ombounds = new google.maps.LatLngBounds(); //bounds 
    for (var r=1; $("#master-master > div").length; r++) 
    { 
     // Add a placemark at the start of each route 
     var placemark_id = "#master-" + r + " > #placemarks-data > #placemark-0"; 

     var markerParameters = {}; 
     markerParameters.index = r-1; 
     markerParameters.total = $(placemark_id + " > .total").html(); 
     markerParameters.mapData = $(placemark_id + " > .map").html(); 
     markerParameters.instructionsData = $("#master-" + r + " > #snippet").html(); 
     markerParameters.distanceData = $("#master-" + r + " > #distance").html(); 
     markerParameters.durationData = $("#master-" + r + " > #duration").html(); 
     markerParameters.titleData = $("#master-" + r + " > #title").html(); 
     markerParameters.urltitleData = $("#master-" + r + " > #url-title").html(); 
     markerParameters.imageData = $(placemark_id + " > .image").html(); 

     $.OverMap.addMarker(markerParameters); 

     // Draw route 
     var points = new Array(); 
     var pointsData = []; 
     var pointsData = $('#master-' + r + ' > #route-data').html(); 
     if (pointsData != '') 
     { 
      var pointsArray = JSON.parse(pointsData); 
      for (var p=0; p<pointsArray.length; p++) { 
       var pt = new google.maps.LatLng(pointsArray[p][0], pointsArray[p][1]); 
       points.push(pt); 
       ombounds.extend(pt); //bounds 
      } 
      $.OverMap.drawRoute(points); 

     } 
     else $.OverMap.drawDirections({preserveViewport:false}); 
    } 
    (map.getBounds()); //bounds 
    map.fitBounds(ombounds); //bounds 

По какой-то причине map.fitBounds (ombounds) ничего не делает. Код по-прежнему отображает маршруты, но я не вижу, что делают связанные функции. Я добавил // границы ко всем строкам, связанным с масштабированием - на данный момент они не оказывают заметного влияния на вывод кода. Кто-нибудь знает, где я ошибаюсь?

+0

Почему у вас есть KeepViewport установлен на false? – geocodezip

+0

Код был изначально сделан другим разработчиком – ninjachicken1

+0

Если вы его поддерживаете _you_ необходимо его понять. – geocodezip

ответ

1

Если для параметра услуги preserveViewport установлено значение false, каждый вызов DirectionsRenderer будет масштабировать и центрировать карту по ее результату. Если вы хотите, чтобы fitBounds переопределил его, вам нужно установить значение true.

+0

Ну как насчет этого. Я все время игнорировал эту линию. Тем не менее, он все еще не работает, даже если я установил его в true. – ninjachicken1

+0

Можете ли вы предоставить достаточно кода для репликации проблемы? Или это делает jsfiddle? – geocodezip

+0

Я не думаю, что могу, видя, что он берет массивы из базы данных. – ninjachicken1