Показать сообщение отдельно
  #6 (permalink)  
Старый 29.08.2016, 14:26
Новичок на форуме
Отправить личное сообщение для Johnny1500 Посмотреть профиль Найти все сообщения от Johnny1500
 
Регистрация: 16.08.2016
Сообщений: 8

Все же можно ли определить расстояние между городами через службу 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>
Ответить с цитированием