Я полностью застреваю при решении странной ошибки карты при использовании Leaflet.js и Cloudmade в приложении Angular and Rails. Карты работают почти на каждой карте, за исключением нескольких карт на стадии (отлично подходит для разработки), где я получаю: «Недоступная ошибка: недопустимый объект LatLng, который, по его словам, не определен. Я получаю лат и долго от JSON, и я проверил, что lat и long присутствуют в JSON, и тот же lat/long работает для подобных карт. В исходном коде Leaflet говорится, что ошибка указана, когда lat/long - Not-A-Number, но я смущен тем, что lat/long не являются числами, когда они находятся в моем json. Вот трассировки стека я получаю в Chrome:Недопустимый объект LatLng с лифтовой картой
Uncaught Error: Invalid LatLng object: (undefined, undefined)
n.LatLng
n.latLng
n.Map.n.Class.extend.project
n.Map.n.Class.extend._getNewTopLeftPoint
n.Map.n.Class.extend._resetView
n.Map.include.setView
(anonymous function)
jQuery.event.dispatch
elemData.handle.eventHandle
jQuery.event.trigger
(anonymous function)
jQuery.extend.each
jQuery.fn.jQuery.each
jQuery.fn.extend.trigger
(anonymous function)
next
Tab.activate
Tab.show
(anonymous function)
jQuery.extend.each
jQuery.fn.jQuery.each
$.fn.tab
(anonymous function)
jQuery.event.dispatch
elemData.handle.eventHandle
Немного кода здесь:
var map = L.map('map').setView([$scope.lat, $scope.long], 11);
L.tileLayer('http://{s}.tile.cloudmade.com/API-key/997/256/{z}/{x}/{y}.png', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>',
maxZoom: 18
}).addTo(map);
Ссылка заменяется мой API ключ конечно. Я использую последнюю стабильную версию Leaflet, которая содержит this code fix, что было лучшим результатом поиска Google, который я мог найти. Моя карта находится внутри содержимого с вкладками, используемого из Bootstrap. Какие проблемы могут быть здесь? Или что мне делать, чтобы отладить это? Любая помощь будет принята с благодарностью, и я с удовольствием предоставил вам дополнительную информацию.
Попробуйте remplace [$ scope.lat, $ scope.long] по [51,505, - 0.09], чтобы узнать, что произойдет. –