开发者

Google Maps API: find a route between two points in Israel

开发者 https://www.devze.com 2023-02-27 04:41 出处:网络
I am trying to find a route between two points i enter manually at my html page but i get ZERO_RESULTS return value.

I am trying to find a route between two points i enter manually at my html page but i get ZERO_RESULTS return value.

The users enters two locations src_address = "Tel Aviv" and dst_address = "Haifa".

i get their geometric location by calling geocoder.geocode twice for each address. then set : src_latlng = results[0].geometry.location; dst_latlng = results[0].geometry.location;

however, when asking for router i get ZERO_RESULTS:

here is the code:

    <!DOCTYPE html>
<html>
<img src="globe123.jpg" width="72" height="75"/> 
<head>
<meta name="viewport" content="开发者_开发百科initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Geocoding Simple</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>



<script type="text/javascript">
  var directionDisplay;
  var directionsService = new google.maps.DirectionsService();

  var geocoder;
  var map;
  var geodesic;
  var poly;
  var src_latlng;
  var dst_latlng;

  function initialize() {
    directionsDisplay = new google.maps.DirectionsRenderer();

    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);


    var polyOptions = {
      strokeColor: '#FF0000',
      strokeOpacity: 1.0,
      strokeWeight: 3
    }
    poly = new google.maps.Polyline(polyOptions);
    poly.setMap(map);
    directionsDisplay.setMap(map);
    // Add a listener for the click event
    //google.maps.event.addListener(map, 'click', addLocation);
  }

  function codeAddress() {
    var src_address = document.getElementById("SRC_ADDR").value;
    var dst_address = document.getElementById("DST_ADDR").value;

    geocoder.geocode( { 'address': src_address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var path = poly.getPath();
        path.push(results[0].geometry.location);
        src_latlng = results[0].geometry.location;
        var marker = new google.maps.Marker({
            map: map, 
            position: results[0].geometry.location
        });
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });
    geocoder.geocode( { 'address': dst_address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        map.setZoom(8);

        var path = poly.getPath();
        path.push(results[0].geometry.location);
        dst_latlng = results[0].geometry.location;
        var marker = new google.maps.Marker({
            map: map, 
            position: results[0].geometry.location
        });


        calcRoute();

      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });



  }

  function calcRoute() {



      var start = src_latlng;
      var end = dst_latlng;
      var request = {
        origin:start, 
        destination:end ,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
      };

      directionsService.route(request, function(result, status) {

        if (status == google.maps.DirectionsStatus.OK) {         
          directionsDisplay.setDirections(result);
        } else {
            alert(status);            
        }    
        });
    }


</script>
</head>
<body onload="initialize()">


  <div style="text-align:left">
  Source: <input id="SRC_ADDR" type="textbox" value="Tel-Aviv, Israel">
  Destination: <input id="DST_ADDR" type="textbox" value="Haifa, Israel">
  <input type="button" value="Calculate Travel Time" onclick="codeAddress()">
  </div>
  <div id="map_canvas" style="height:40%;width:40%;top:120px"></div>
  <!-- <div id="map_canvas" style="width: 320px; height: 480px;"></div> 
  -->



</body>
</html>


Google doesn't have Maps API coverage for Israel yet, hence the ZERO_RESULTS status returned from the directionsService.route function call.

See Google's map coverage details worksheet of supported regions here. The direct link to the spreadsheet is here.


hi you can use this code to get route between souurce and destinations

function setRoute()
{
      var fromAddress=document.getElementById("txtfromAddress").value;
      var toAddress=document.getElementById("txttoAddress").value; 
      if(fromAddress!="" && toAddress!="")
      {
       if(!fromAddress && !toAddress)
       {
       alert('ROute not found');
       }
       GDir1.load("from: " + fromAddress + " to: " + toAddress);        


      }
      else
      {
        alert('Route Directions Required');
      }
}


*http://gmaps-samples.googlecode.com/svn/trunk/mapcoverage_filtered.html* see if it covers your region it includes detailed view of street view or satellite view etc available or not GL

0

精彩评论

暂无评论...
验证码 换一张
取 消