我想用谷歌地图API做一个方向,但它不适用于地址。我尝试使用这样的地理编码服务,但它不知道"路线"(方向服务(。
我的方法 :
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': this.nomBar}, function(results, status) {
this.directionsService.route({
origin: this.currentLocation,
destination: results[0].geometry.location,
travelMode: 'DRIVING'
}, (response, status) => {
if (status === 'OK') {
that.directionsDisplay.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
});
您无需使用地理编码器即可获取起点和目的地的方向。谷歌的文档指出:
origin
(必需(指定从中开始的位置 计算方向。此值可以指定为String
(对于 例如,"伊利诺伊州芝加哥"(,作为LatLng
值或作为google.maps.Place
对象。如果使用google.maps.Place
对象,则可以指定位置 ID、查询字符串或LatLng
位置。
destination
(必需(指定要到的结束位置 计算方向。选项与源字段相同 上述。
此示例使用地址:
directionsService.route({
origin: start, // e.g. "chicago, il"
destination: end, // e.g. "st louis, mo"
travelMode: 'DRIVING'
}, function(response, status) {
if (status === 'OK') {
directionsRenderer.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
而另一个示例使用坐标:
directionsService.route({
origin: {lat: 37.77, lng: -122.447},
destination: {lat: 37.768, lng: -122.511},
travelMode: google.maps.TravelMode[selectedMode]
}, function(response, status) {
if (status == 'OK') {
directionsRenderer.setDirections(response);
} else {
window.alert('Directions request failed due to ' + status);
}
});
希望这有帮助!