我正在尝试在我的html页面手动输入的两个点之间找到路线,但我得到ZERO_RESULTS返回值。
用户输入两个位置src_address =“Tel Aviv”和dst_address =“Haifa”。
通过为每个地址调用geocoder.geocode两次来获取它们的几何位置。然后设置: src_latlng = results [0] .geometry.location; dst_latlng = results [0] .geometry.location;
然而,当要求路由器我得到ZERO_RESULTS:
这是代码:
<!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>
答案 0 :(得分:3)
Google还没有针对以色列的Maps API覆盖范围,因此从directionsService.route
函数调用返回了ZERO_RESULTS状态。
答案 1 :(得分:2)
您可以使用此代码获取源和目的地之间的路线
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'); } }
答案 2 :(得分:0)
*的 http://gmaps-samples.googlecode.com/svn/trunk/mapcoverage_filtered.html* 强> 看它是否覆盖您的区域,它包括街景或卫星视图等详细视图 GL