Все же можно ли определить расстояние между городами через службу DirectionsService Google, а не UrlFetch?
Как я понимаю должна работать программа:
1) На листе GoogleSheet запускается estimateViaDistance
2) Создается шаблон из Index.html
3) Получается ссылка на Googlemaps
4) Через скриплет запускается функция determineRoutes.
Но у меня выскакивает ошибка "Объект google не определен", хотя Google Maps Directions API я в Developers Console подключил и учетные данные создал (Browser Key). В чем может быть причина? Подскажите, пожалуйста. Вот код:
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu('Distance and time')
.addItem('Estimate via DistanceService', 'estimateViaDistance')
.addToUi();
}
function determineRoutes() {
var directionsService = new google.maps.DirectionsService;
var request = {
origin:"Москва",
destination:"Екатеринбург",
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request,function(result, status){
if(status == google.maps.DirectionsStatus.OK){
var routes = result.routes;
var leg = routes[0].legs;
var lenght = leg[0].distance.text;
Logger.log(lenght);
var duration = leg[0].duration.text;
Logger.log(duration);
}
});
}
function estimateViaDistance(){
return HtmlService.createTemplateFromFile('Index.html')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
Index.html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<script src="https://maps.googleapis.com/maps/api/js?key=ПОЛУЧЕННЫЙ_КЛЮЧ&signed_in=true"async defer></script>
<?!=determineRoutes();?>
</body>
</html>