2015-05-04 6 views
0

с одного дня на другой библиотека Gmaps.js перестала работать ... Я создал карту с 3 маркерами, и у них была InfoWindows, и я добавил небольшую опцию маршрутизации в InfoWindow где вы могли ввести свой адрес, и Gmaps направил вас к этой точке.Gmaps.js перестает работать

Теперь, не меняя ничего за последние 2 недели, я не могу заставить его работать больше: карта загружается без каких-либо проблем, но когда я нажимаю на маркер, карта убивает себя.

Херес URL: http://gruber.tv/z/#standorte

Когда я загрузить карту в Firefox можно увидеть много «слишком много рекурсии» ошибки, и все они происходят из main.js Google,

Я надеюсь, что кто-то может мне помочь!

С наилучшими пожеланиями iDave

+0

Ошибка консоли, в которой указано, что oldUrl не определен. После решения этого решения рекурсия? –

+0

нет, что консольная ошибка была там до – iDave

+0

Но теперь вам нужно ее решить :) –

ответ

0

Посмотрите на свой код, который обрабатывает click событие для каждого из маркеров:

map.setCenter(e.position.k, e.position.D); 

Метод setCenter() в Gmaps принимает широты и долготы аргументов. Do k и D выглядят как разумные имена для них? :-)

Я подозреваю, что вы нашли эти свойства, оглядываясь в инструментах разработчика при разработке своего кода, верно? Установите точку останова на этой строке кода и посмотрите еще раз, когда вы туда доберетесь.

Yikes, нет k или D Недвижимость есть. Теперь у него есть A и F. Ну, этого не будет.

Но вы видите __proto__ недвижимость прямо под этим? Разверните это, и вы увидите доступные методы для объекта position. Обратите внимание на методы lat() и lng(). Они делают намного больше смысла, поэтому попробуйте их:

map.setCenter(e.position.lat(), e.position.lng()); 

То, что произошло здесь: e.position является LatLng объект из Google Maps API. Объекты API имеют ряд недокументированных внутренних свойств, а также документированные свойства и методы. lat() и lng() - documented methods to get the latitude and longitude от объекта LatLng. Другие свойства, которые вы обнаружили, используются внутри API, но они не предназначены для использования в вашем собственном коде. Google запускает все свои JavaScript-код JavaScript через «minifier», который произвольно изменяет внутренние имена, чтобы сократить код, но сохраняет неизмененные документированные общедоступные имена. Поэтому каждые несколько недель, когда они обновляют свой API, любое из недокументированных внутренних имен может измениться.

+0

Отлично! Большое спасибо! – iDave

+0

Рад помочь. В конце я добавил записку с дополнительной информацией о том, что здесь происходит. –

Смежные вопросы