За последние 24 часа нас посетили 56610 программистов и 1685 роботов. Сейчас ищут 1225 программистов ...

API google прорисовка маршрута

Тема в разделе "JavaScript и AJAX", создана пользователем kit, 28 июн 2013.

  1. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Пытаюсь заставить API google проложить маршрут из Чикаго в Лос Анделес.
    Вот код на яве:
    Код (Text):
    1. <!DOCTYPE html>
    2. <html>
    3.   <head>
    4.     <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    5.     <style type="text/css">
    6.       html { height: 100% }
    7.       body { height: 100%; margin: 0; padding: 0 }
    8.       #map_canvas { height: 100% }
    9.     </style>
    10.     <script type="text/javascript"
    11.       src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDvwfxY1AM4IlRFEBY3RZe4C6vcKRsx_Vo&sensor=true">
    12.     </script>
    13.     <script type="text/javascript">
    14. function initialize() {
    15.         var mapOptions = {
    16.           center: new google.maps.LatLng(41.880809,-87.631073),
    17.           zoom: 8,
    18.           mapTypeId: google.maps.MapTypeId.ROADMAP
    19.         };
    20.         var map = new google.maps.Map(document.getElementById("map_canvas"),
    21.             mapOptions);
    22.       }
    23. function calcRoute() {
    24.   var request = {
    25.  origin: "Chicago, IL",
    26.   destination: "Los Angeles, CA",
    27.   travelMode: google.maps.TravelMode.DRIVING
    28.   };
    29.   directionsService.route(request, function(result, status) {
    30.     if (status == google.maps.DirectionsStatus.OK) {
    31.       directionsDisplay.setDirections(result);
    32.     }
    33.   });
    34.   }
    35. google.maps.event.addDomListener(window, 'load', initialize);
    36.     </script>
    37.   </head>
    38.   <body onload="calcRoute()">
    39.     <div id="map_canvas" style="width:100%; height:100%"></div>
    40.   </body>
    41. </html>
    В яве я вообще нибельмеса, понимаю, только отдельные моменты. В принципе содрать готовый код возможность есть, но в предложенных образцах используются элементы формы, а мне надо что бы карта загружалась сразу с заранее забитыми городами (без предоставленных инных вариантов).
    Результат - карта грузится, маршрут не рисуется.
    Помогите устранить ошибку. Буду признателен за помощь.
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    ява и ява-скрипт разные вещи, которые не следует путать в первую очередь.
    Изучить тебе поможет техническая документация.
    Прочитайте про маршруты в API-документации.
     
  3. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    от туда код и скопировал, и попытался исправить под свои нужды.
    жестко прописал:
    origin: "Chicago, IL",
    destination: "Los Angeles, CA",
    (раньше города выбирались select-ом)
    и поставил
    <body onload="calcRoute()">
    что бы маршрут прорисовывался при загрузке страницы.
    (раньше маршрут прорисовывался при изменения в селекте <select id="start" onchange="calcRoute();">)
    результат - не работает (карта есть, маршрута нет)!
    хэлп!
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    А вы верните все на место и посмотрите как сделано. Внимательно! Толи вы убираете?
    Объясните задачу подробнее, что пытаетесь сделать. И найдутся те кто поможет.

    Нет всей задачи, оторвано как-то.
    Что вы хотите из стандартного скрипта маршрута сделать?
    Чтобы как работало?
     
  5. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Вот весь код который был изначально:
    Код (Text):
    1. <!DOCTYPE html>
    2. <html>
    3.   <head>
    4.     <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    5.     <meta charset="utf-8">
    6.     <title>Directions service</title>
    7.     <link href="/maps/documentation/javascript/examples/default.css" rel="stylesheet">
    8.     <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    9.     <script>
    10. var directionsDisplay;
    11. var directionsService = new google.maps.DirectionsService();
    12. var map;
    13.  
    14. function initialize() {
    15.   directionsDisplay = new google.maps.DirectionsRenderer();
    16.   var chicago = new google.maps.LatLng(41.850033, -87.6500523);
    17.   var mapOptions = {
    18.     zoom:7,
    19.     mapTypeId: google.maps.MapTypeId.ROADMAP,
    20.     center: chicago
    21.   }
    22.   map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    23.   directionsDisplay.setMap(map);
    24. }
    25.  
    26. function calcRoute() {
    27.   var start = document.getElementById('start').value;
    28.   var end = document.getElementById('end').value;
    29.   var request = {
    30.       origin:start,
    31.       destination:end,
    32.       travelMode: google.maps.DirectionsTravelMode.DRIVING
    33.   };
    34.   directionsService.route(request, function(response, status) {
    35.     if (status == google.maps.DirectionsStatus.OK) {
    36.       directionsDisplay.setDirections(response);
    37.     }
    38.   });
    39. }
    40.  
    41. google.maps.event.addDomListener(window, 'load', initialize);
    42.  
    43.     </script>
    44.   </head>
    45.   <body>
    46.     <div id="panel">
    47.     <b>Start: </b>
    48.     <select id="start" onchange="calcRoute();">
    49.       <option value="chicago, il">Chicago</option>
    50.       <option value="st louis, mo">St Louis</option>
    51.       <option value="joplin, mo">Joplin, MO</option>
    52.       <option value="oklahoma city, ok">Oklahoma City</option>
    53.       <option value="amarillo, tx">Amarillo</option>
    54.       <option value="gallup, nm">Gallup, NM</option>
    55.       <option value="flagstaff, az">Flagstaff, AZ</option>
    56.       <option value="winona, az">Winona</option>
    57.       <option value="kingman, az">Kingman</option>
    58.       <option value="barstow, ca">Barstow</option>
    59.       <option value="san bernardino, ca">San Bernardino</option>
    60.       <option value="los angeles, ca">Los Angeles</option>
    61.     </select>
    62.     <b>End: </b>
    63.     <select id="end" onchange="calcRoute();">
    64.       <option value="chicago, il">Chicago</option>
    65.       <option value="st louis, mo">St Louis</option>
    66.       <option value="joplin, mo">Joplin, MO</option>
    67.       <option value="oklahoma city, ok">Oklahoma City</option>
    68.       <option value="amarillo, tx">Amarillo</option>
    69.       <option value="gallup, nm">Gallup, NM</option>
    70.       <option value="flagstaff, az">Flagstaff, AZ</option>
    71.       <option value="winona, az">Winona</option>
    72.       <option value="kingman, az">Kingman</option>
    73.       <option value="barstow, ca">Barstow</option>
    74.       <option value="san bernardino, ca">San Bernardino</option>
    75.       <option value="los angeles, ca">Los Angeles</option>
    76.     </select>
    77.     </div>
    78.     <div id="map-canvas"></div>
    79.   </body>
    80. </html>
    Задача
    1) убрать поля формы select
    2) сделать так, что бы при загрузке страницы отображалась карта с маршрутом между вышеуказанными городами (или любыми другими)
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Я так и подумал, что вы убрали сами маршруты без указания, замены на другие... Ну подумайте еще хорошенько и у вас все получится...
     
  7. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    да я уже себе мозг вывихнул!!! еще немного и ява-скрипт выучу! Хотя он мне нужен раз в год!
    Ну подскажите код. Работа стоит из-за этого!
     
  8. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    кто-нибудь может помочь?
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Замените селекты на массивы или еще на чего-нибудь, на строки как меню...
    Я не понимаю, что вам надо, что бы как было?
     
  10. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Вы заходите на страницу сайта, а на ней отображается карта и маршрут между Чикаго и Лос Анделесом.
    Все! Никаких альтернатив, никаких селектов, никаких массивов! Пользователь не должен иметь возможность менять города.
    Только карта и маршрут Чикаго и Лос Анделес.
    Вот это должно быть результатом работы скрипта.
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Сделайте аналогична селектам... Тут еще проще, раз чтобы пользователи не могли менять.
    У вас уже почти получилось =))
    Еще чучуть и у вас точно все получится =)))
     
  12. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    ё-моё!!!
    все свое умение и понимание выложил в первом коде! что там не так? где ошибка? почему не работает?
    ну хорош уже издеваться, очень нужна помощь!
    или вы сами не знаете????
     
  13. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  14. kit

    kit Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    это к чему? типа денег надо?
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ну раздел говорит сам за себя.

    Вы же хотите, чтобы за вас: написали, показали, объяснили?