2015-04-02 3 views
-2

Привет в моей карте google. Я просто рисую один маркер при загрузке карты. Но тогда карта полностью масштабируется, в которой действительно запутано. но когда я рисую более чем одну карту маркеров, правильно центрируется и масштабируется до определенного уровня. как это можно преодолеть. У меня есть петля внутри моей функции маркеров рисования, и в ней я получаю только один объект с координатами. когда я получаю более одного объекта с карты «маркеров», выравнивается по центру. но когда он имеет только один объект для цикла. маркеры получает обращается, но карта не очень хорошо центрируется и увеличенной (увеличено полностью)Google map Zoomed full

function drawMarkers(markerList) { 
        debugger; 

         var mapOptions = { 
          center: new google.maps.LatLng(-24.504710, 134.039231), 
          zoom: 4, 
          mapTypeId: google.maps.MapTypeId.ROADMAP 
         }; 
         var currentLocation; 
         var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions); 
         var infoWindow = new google.maps.InfoWindow(); 

         var lat_lng = new Array(); 
         var latlngbounds = new google.maps.LatLngBounds(); 
         for (i = 0; i < markers.length; i++) { 
          //if (markerList[i].Longitude > 0) { 
          var data = markerList[i] 
          var myLatlng = new google.maps.LatLng(data.Latitude, data.Longitude); 
          lat_lng.push(myLatlng); 


          var marker = new google.maps.Marker({ 
           position: myLatlng, 
           map: map, 
           title: data.DriverName, 

          }); 

          var driverCurrentLocation = document.getElementById('<%= hdfDriverCurrentLocation.ClientID %>').value; 

          latlngbounds.extend(marker.position); 
          //if (markerList[i].Longitude > 0) { 
          (function (marker, data) { 
           google.maps.event.addListener(marker, "click", function (e) { 
            debugger; 
            var lat = data.Latitude; 
            var lng = data.Longitude; 
            var latlng = new google.maps.LatLng(lat, lng); 
            var geocoder = geocoder = new google.maps.Geocoder(); 
            geocoder.geocode({ 'latLng': latlng }, function (results, status) { 
             if (status == google.maps.GeocoderStatus.OK) { 
              if (results[1]) { 
               currentLocation = results[1].formatted_address; 
              } 
              infoWindow.setContent('<div style="overflow: auto;width: 275px;">' + 
             '<div id="leftSideMainDiv" class="col25" style="padding-Left:0px; width:22%;">' + 
             '<div class="col100"><img src="../Images/DriverImages/driver_icon.jpg" height="60" width="60"/></div>' + 

             '</div>' + 

             '<div id="RightSideMainDiv" class="col75" style="width:72%;">' + 
             '<div class="col100" style="font-weight:bold; padding-top:0px; padding-left:0px; font-size:smaller;"> ' + data.DriverName + '</div>' + 
             '<div style="font-size:smaller; padding-top:15px;">Job Number :' + data.JobId + ' - ' + data.JobType + '</div>' + 
             '<div style="font-size:smaller;">Delivery Address :' + data.DeliveryAddress + '</div>' + 
             '<div style="font-size:smaller;">Current Location :' + currentLocation + '</div>' + 
             '<div style="font-size:smaller;">Last Update :' + data.LastUpdatedTime + '</div>' + 
             '</div>'); 

              infoWindow.open(map, marker); 
             } 
            }); 

           }); 
          })(marker, data); 
         //} 
          } 
         //} 
         map.setCenter(latlngbounds.getCenter()); 
         map.fitBounds(latlngbounds); 
         map.setZoom(5); 

       } 
+0

некоторый код? Вы можете легко управлять увеличением при загрузке карты. –

+0

Я сделал это в вариантах карты. Но не работает – SINFER

+0

Возможный дубликат [Как установить уровень масштабирования в google map] (http://stackoverflow.com/questions/11454229/how-to-set-zoom-level-in-google-map) – mate64

ответ

0

Связанные вопрос: How to set zoom level in google map

Если у вас есть только один маркер (markers.length == 1), то не называйте map.fitBounds(). Изменение:

map.setCenter(latlngbounds.getCenter()); 
map.fitBounds(latlngbounds); 
map.setZoom(5); 

To:

map.setCenter(latlngbounds.getCenter()); 
if (marker.length != 1) map.fitBounds(latlngbounds); 
map.setZoom(5); 
0

на инициализации карт устанавливают уровень масштабирования, здесь масштаб установлен в 5

map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); 

    google.maps.event.addDomListener(window, 'load', function() { 
       map.setZoom(5); 
     }); 

Добавить карту переменные вне области видимости функции карты содержит в

var map; 

, а затем изменить строку в вашей карте функции-

map = new google.maps.Map(document.getElementById("dvMap"), mapOptions); 

затем после вызова вашей функции карты drawMarkers(markerList) вам необходимо установить масштаб как-

$(document).ready(function(){ 
    drawMarkers(markerList) 
    google.maps.event.addDomListener(window, 'load', function() { 
      map.setZoom(5); 
    }); 
}); 

Позвольте мне знать, если это работает!

+0

didn 't work Manoz – SINFER

+0

@ user3671284, Как вы приближаетесь к этому? Я только что протестировал его на своем местном – Manoj

+0

Я отредактировал мой вопрос – SINFER

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