2010-03-17 5 views
1

J'essaie d'utiliser DirectionsRenderer pour afficher un DirectionsResult sans la liste des routes. Selon la documentation de l'API version 3, il existe une propriété "hideRouteList" de l'objet DirectionsRendererOptions qui, lorsqu'elle est définie sur true, doit masquer la liste des routes. Je ne peux pas le faire fonctionner. Est-ce un bug ou est-ce que je ne le code pas correctement? Voici mon code.API Google Maps DirectionsRendererOptions ne fonctionne pas?

<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> 

Répondre

1

Je tried this out et je ne pense pas que vous faites quelque chose de mal. On dirait que cette option est cassée. Je ne pouvais pas le trouver dans le known issues, donc je pense que c'est un nouveau. Quand j'aurai une chance, je l'écrirai.

+0

Un problème est survenu ici -> http://code.google.com/p/gmaps-api-issues/issues/detail?id=2247 – RedBlueThing

0

Je pense que vous ne comprenez pas la documentation, ou peut-être que je ne comprends pas votre question!

hideRouteList: true masque les options de route, pas le balisage de route. Cela s'applique uniquement avec settingRouteAlternatives: true sur l'objet de requête que vous avez également fourni.

Ci-dessous est mon test rapide. Définissez hideRouteList sur true/false pour voir la différence dans le balisage d'itinéraire ci-dessous. Dans mon cas, il n'y a pas d'options de route, mais il y a un balisage différent.

<!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>