2010-03-17 5 views
1

DirectionsRenderer를 사용하여 경로 목록없이 DirectionsResult를 표시하려고합니다. API 버전 3 설명서에 따르면 DirectionsRendererOptions 객체의 'hideRouteList'속성이 있는데이 속성을 true로 설정하면 경로 목록을 숨겨야합니다. 나는 그것을 작동시킬 수 없다. 이 버그인가요 아니면 정확히 코딩하지 않았습니까? 다음은 내 코드입니다.Google Maps API DirectionsRendererOptions이 작동하지 않습니까?

<html> 
<head> 
<title>Driving Directions</title> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script> 
<script type="text/javascript"> 
<!-- 
function initialize() { 
    var dirService = new google.maps.DirectionsService(); 
    var dirRequest = { 
      origin: "350 5th Ave, New York, NY, 10118", 
      destination: "1 Wall St, New York, NY", 
      travelMode: google.maps.DirectionsTravelMode.DRIVING, 
      unitSystem: google.maps.DirectionsUnitSystem.IMPERIAL, 
      provideTripAlternatives: true 
    }; 
    dirService.route(dirRequest, showDirections); 
} 

function showDirections(dirResult, dirStatus) { 
    if (dirStatus != google.maps.DirectionsStatus.OK) { 
     alert('Directions failed: ' + dirStatus); 
     return; 
    } 
    var rendererOptions = { 
     hideRouteList: true 
    }; 
    var dirRenderer = new google.maps.DirectionsRenderer(rendererOptions); 
    dirRenderer.setPanel(document.getElementById('dir-container')); 
    dirRenderer.setDirections(dirResult); 
} 
--> 
</script> 
</head> 
<body onLoad="initialize();"> 
<div id="dir-container"></div> 
</body> 
</html> 

답변

1

l나는 너가 틀린 무엇을하고 있다고 생각하지 않는다. 이 옵션이 고장난 것 같습니다. known issues에서 찾을 수 없으므로 이것이 새로운 것 같습니다. 내가 기회를 얻었을 때 나는 그것을 쓸 것이다.

+0

여기에 문제가 기록되었습니다. -> http://code.google.com/p/gmaps-api-issues/issues/detail?id=2247 – RedBlueThing

0

나는 당신이 문서를 오해하고 있다고 생각하거나 아마도 당신의 질문을 오해하고 있습니다!

hideRouteList : true는 경로 옵션을 숨기며 경로 마크 업은 숨 깁니다. 이는 제공 한 요청 객체에 대해 provideRouteAlternatives : true 설정과 함께 적용됩니다.

다음은 빠른 테스트입니다. hideRouteList를 true/false로 설정하면 아래의 경로 마크 업의 차이를 볼 수 있습니다. 필자의 경우에는 경로 옵션이 없지만 마크 업이 다릅니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title>Driving Directions example.</title> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 


    $(function() { 
     MySite.MapAdmin.init(); 
    }); 


    var MySite = {}; 

    MySite.MapAdmin = { 
     mapOptions: { 
      zoom: 14, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      center: new google.maps.LatLng(46.51257, -84.336609) 
     }, 
     mapRendererOptions: { 
      draggable: true, 
      panel: document.getElementById('map-directions'), 
      hideRouteList: false 
     }, 
     directionDisplay: null, 
     directionsService: null, 
     map: null, 
     init: function() { 

      this.map = new google.maps.Map(document.getElementById("map"), this.mapOptions);    
      this.directionsService = new google.maps.DirectionsService(); 
      this.directionsDisplay = new google.maps.DirectionsRenderer(this.mapRendererOptions);   
      this.directionsDisplay.setMap(this.map); 

      this.plotRoute(); 

     }, 
     plotRoute: function() { 

      var selectedMode = "DRIVING"; // DRIVING, WALKING, BICYCLING 

      var request = { 
       origin: new google.maps.LatLng(46.51257, -84.336609), 
       destination: new google.maps.LatLng(46.61257, -84.336609), 
       travelMode: google.maps.DirectionsTravelMode[selectedMode], 
       provideRouteAlternatives: true 
      }; 

      MySite.MapAdmin.directionsService.route(request, function (response, status) { 
       if (status == google.maps.DirectionsStatus.OK) { 
        MySite.MapAdmin.directionsDisplay.setPanel(document.getElementById('map-directions')); 
        MySite.MapAdmin.directionsDisplay.setDirections(response); 
       } 
      }); 

     } 
    }; 


</script> 

</head> 
<body> 
    <div id="map" style="width: 800px; height: 600px;"></div> 
    <div id="map-directions"></div> 
</body> 
</html>