проблема с Google directions api

#javascript #google-maps #google-maps-api-3

#javascript #google-карты #google-maps-api-3

Вопрос:

Пользователь заходит в мое веб-приложение и находит адрес назначения, но он не находит исходное местоположение и публикует страницу. Обычный пользователь, который не зарегистрирован в веб-приложении, добавляет местоположение источника.

Как только пользователь добавляет исходное местоположение, он не может видеть точную карту направления, вместо этого Google отображает карты по умолчанию.

Вот исключение, возникающее при использовании консоли chrome.

Я добавил сюда код, а также исключение, которое я получаю

 Error Name:
main.js:41Uncaught TypeError:Object#<object> has no method 'Load'


function calcRoute() {
    showDirections();
  document.getElementById('directionsPanel').innerHTML="";
    initialize();
  var start = document.getElementById("txt_from").value;
  var end = getDestinationAdderss(document.getElementById('final_address').innerHTML);
  var request = {
    origin:start, 
    destination:end,
    travelMode: google.maps.DirectionsTravelMode.DRIVING
  };
  directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsDisplay.setDirections(response);
    }
  });
  

введите описание изображения здесь

 function initialize() {
  directionsDisplay = new google.maps.DirectionsRenderer();
  var chicago = new google.maps.LatLng(41.850033, -87.6500523);
  var myOptions = {
    zoom:7,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: chicago
  }
  map = new google.maps.Map(document.getElementById("map_canvas_directions"), myOptions);
  directionsDisplay.setMap(map);
  directionsDisplay.setPanel(document.getElementById("directionsPanel"));
}
  

Комментарии:

1. Ошибка возникает в строке 41 из main.js . Как там выглядит код? (Или это main.js что-то в Google API, а не то, что вы написали?)

2. @Trott: Да, ошибка в main.js , но я не могу определить, что с этим не так, раньше все работало нормально, я просто изменил пользовательский интерфейс, теперь это создает некоторые проблемы

3. Как выглядит код в строке 41 из main.js ? (Или это main.js что-то в Google API, а не то, что вы написали?)

4. @Troot: я добавил снимок экрана, просто взгляните и, пожалуйста, помогите мне

5. Код на скриншоте нечитаем. Кроме того, он выглядит уменьшенным, и отладка уменьшенного кода просто не будет работать. Если это то, что вы написали, пожалуйста, измените на версию, которая не сокращена. Если это что-то в Google API, то, по крайней мере, скажите об этом.

Ответ №1:

Вы удалили некоторый код, который присутствует в примере Google.

 directionsDisplay = new google.maps.DirectionsRenderer({
    'map': map,
    'preserveViewport': true,
    'draggable': true
});
  

Я ожидаю, что ваш код снова заработает, если вы добавите приведенный выше код в нужное место. Если нет, вам действительно следует начать с примера кода заново, поскольку это действительно работает.

Комментарии:

1. @Trott: здравствуйте, я пробовал то, что вы предложили, но у меня это не работает. Могу ли я узнать ваш идентификатор электронной почты, если вы не возражаете

Ответ №2:

Скриншот отладки показывает, что initialize() — это последний фрагмент кода, выполняемый в вашем файле перед тем, как Google Maps API выдаст ошибку. Так что загляните туда (и / или укажите этот код в своем вопросе).

ОБНОВЛЕНИЕ: Исходя из вашего кода, первой проверкой может быть проверка наличия элемента с идентификатором map_canvas_directions и другого элемента с идентификатором directionsPanel . Недостаточно информации, чтобы сказать наверняка, но если бы мне пришлось догадываться, ваши изменения пользовательского интерфейса избавили вас от того или иного из этих элементов, но они требуются вашему коду.

ОБНОВЛЕНИЕ К ОБНОВЛЕНИЮ: замена содержимого в конструкторе DirectionsRenderer(), как предлагает @Arjan, также является вероятной причиной вашей проблемы, поэтому обязательно попробуйте это тоже!

Комментарии:

1. @Jeevan: Поскольку это принятый ответ, можно с уверенностью заключить, что ваша проблема решена. Поэтому я думаю, что мне не нужно публиковать, какой код все еще кажется отсутствующим.

2. @Arjan: извините, проблема на самом деле еще не решена. пожалуйста, помогите мне решить эту проблему. Я могу предоставить более подробную информацию по этому поводу.