google map Inspecting DirectionsResults

<!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></title>
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map-canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDdIlaRp0Dm8cEP8oXZ_8HLuj_zpccK7gw&sensor=true">
    </script>
    <script type="text/javascript">
        var map; 
        var directionsDisplay; 
        var directionsService;
         var stepDisplay; 
         var markerArray = [];
           function initialize() {
              // Instantiate a directions service.
                 directionsService = new google.maps.DirectionsService();   
                  // Create a map and center it on Manhattan.   
                  var manhattan = new google.maps.LatLng(40.7711329, -73.9741874);
                     var mapOptions = {  
                        zoom: 13,
                             mapTypeId: google.maps.MapTypeId.ROADMAP, 
                                 center: manhattan 
                                   }
                                   
                 map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
              // Create a renderer for directions and bind it to the map.  
               var rendererOptions = {   
                          map: map  
                   }
         directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions)
             // Instantiate an info window to hold step text.   
             stepDisplay = new google.maps.InfoWindow();
              }
       function calcRoute() {   
        // First, remove any existing markers from the map.  
         for (var i = 0; i < markerArray.length; i++) 
         {    
            markerArray[i].setMap(null); 
         }
             // Now, clear the array itself. 
        markerArray = [];  
          // Retrieve the start and end locations and create  
           // a DirectionsRequest using WALKING directions. 
             var start = document.getElementById('start').value;   
             var end = document.getElementById('end').value; 
             var request = {     
                 origin: start,   
                     destination: end,    
                        travelMode: google.maps.TravelMode.WALKING  
                         };   
       // Route the directions and pass the response to a
          // function to create markers for each step. 
            directionsService.route(request, function(response, status) 
            {  
               if (status == google.maps.DirectionsStatus.OK)
                {      
                   var warnings = document.getElementById('warnings_panel'); 
                  warnings.innerHTML = '<b>' + response.routes[0].warnings + '</b>';   
                 directionsDisplay.setDirections(response);    
                    showSteps(response);    
                } 
             });
     }
       function showSteps(directionResult) 
       {
          // For each step, place a marker, and add the text to the marker's   
          // info window. Also attach the marker to an array so we   
          // can keep track of it and remove it when calculating new   
          // routes.   
          var myRoute = directionResult.routes[0].legs[0]; 
         for (var i = 0; i < myRoute.steps.length; i++) 
         {
              var marker = new google.maps.Marker({ 
                    position: myRoute.steps[i].start_point,    
                    map: map
          });
         attachInstructionText(marker, myRoute.steps[i].instructions); 
         markerArray[i] = marker;  
     } }
     function attachInstructionText(marker, text) 
     {
        google.maps.event.addListener(marker, 'click', function() {    
         // Open an info window when the marker is clicked on,    
            // containing the text of the step.     
            stepDisplay.setContent(text);
            stepDisplay.open(map, marker);
        }); 
     } 


        
        google.maps.event.addDomListener(window, 'load', initialize);

    </script>
</head>
<body>
<div>
<strong>Start: </strong>
<select id="start">
  <option value="penn station, new york, ny">Penn Station</option>
  <option value="grand central station, new york, ny">Grand Central Station</option>
  <option value="625 8th Avenue New York NY 10018">Port Authority Bus Terminal</option>
  <option value="staten island ferry terminal, new york, ny">Staten Island Ferry Terminal</option>
  <option value="101 E 125th Street, New York, NY">Harlem - 125th St Station</option>
</select>
<strong>End: </strong>
<select id="end" onchange="calcRoute();">
  <option value="260 Broadway New York NY 10007">City Hall</option>
  <option value="W 49th St & 5th Ave, New York, NY 10020">Rockefeller Center</option>
  <option value="moma, New York, NY">MOMA</option>
  <option value="350 5th Ave, New York, NY, 10118">Empire State Building</option>
  <option value="253 West 125th Street, New York, NY">Apollo Theatre</option>
  <option value="1 Wall St, New York, NY">Wall St</option>
</select>
<div>


    <div id="map-canvas"/>

</body>
</html>

 

posted @ 2013-05-15 22:05  louiskoo  阅读(265)  评论(0编辑  收藏  举报