2011-03-04 7 views
0

map.fitbounds를 사용하는 동안 약간의 문제가 발생했습니다. 지도에 두 점을 전달하고 옆에있는 길 찾기 서비스를 사용하고 있습니다. 나는 주어진 두 점 사이의지도를 중앙에 map.fitbounds를 사용하고 있지만지도가 실제로 특정 코드의 일부에 대한 세계관을 보여주는 끝나는 문제로 실행 한 :Google Maps API v3 JS map.fitbounds

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    window.addEvent('domready', function() {  
     initialize(); 
    }); 

    var directionsDisplay; 
    var directionsService = new google.maps.DirectionsService(); 
    var currentDirections = null; 

    var clat = 52.03574; 
    var clng = 0.58363; 
    var dlat = 51.08577; 
    var dlng = -1.31712; 

    function initialize() 
    { 
     var mOptions = { 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 
     var map = new google.maps.Map($("mapCanvas"), mOptions); 

     directionsDisplay = new google.maps.DirectionsRenderer({ 
      'map': map, 
      'preserveViewport': true, 
      'draggable': true//, 
      //'suppressMarkers': true 
     }); 
     directionsDisplay.setPanel($("directions_panel")); 

     google.maps.event.addListener(directionsDisplay, 'directions_changed', function() { 
      currentDirections = directionsDisplay.getDirections(); 
     }); 

     var start = 'Little Yeldham, Halstead, Essex CO9 4JZ, UK'; 
     var end = 'Winchester, Hampshire SO21, UK'; 
     var request = { 
      origin: start, 
      destination: end, 
      travelMode: google.maps.DirectionsTravelMode.DRIVING, 
      unitSystem: google.maps.DirectionsUnitSystem.IMPERIAL 
     }; 
     directionsService.route(request, function(response, status) { 
      if (status == google.maps.DirectionsStatus.OK) { 
       directionsDisplay.setMap(map); 
       directionsDisplay.setDirections(response); 
      } 
     }); 

     var collectionPoint = new google.maps.LatLng(clat, clng); 
     var deliveryPoint = new google.maps.LatLng(dlat, dlng); 
     var bounds = new google.maps.LatLngBounds(collectionPoint, deliveryPoint); 
     map.fitBounds(bounds); 
    } 

</script> 

수있는 사람의 도움이나 포인트 올바른 방향으로 올바른 디스플레이 거리를 표시하는 방법을 알려주세요.

답변

1

편집 : 그냥 비슷한 문제가있는 this post을 찾았습니다. 그래서 가능한 해결책은 빈 경계를 생성하고 그것을 확장하기 시작하는 것입니다.

내 자신의 코드는 다음과 같습니다

var bounds = new google.maps.LatLngBounds(); 
for(var i=0;i<this.markers.length;i++){ 
    bounds.extend(this.markers[i].getPosition()); 
} 
this.map.fitBounds(bounds); 

나는 몇 가지 시나리오에서 똑같은 문제가 있었어요. 포인트 주문을 반전하면 일시적으로 문제가 해결되지만 실제 문제가 무엇인지 또는 GMaps API 버그인지 아직 알 수 없습니다.

운이 좋았습니까?

관련 문제