Javascript 具有传单贴图的LatLng对象无效
当我在Angular和Rails应用程序中使用sploate.js和Cloudmade时,我完全无法解决一个奇怪的地图错误。这些映射在几乎所有的映射上都有效,除了一些关于staging的映射(对于开发来说很好),我得到了:Uncaught Error:Invalid LatLng object,它说它是未定义的。我从一个JSON中获取了lat和long,我已经验证了JSON中存在lat和long,并且相同的lat/long用于类似的映射。在传单源代码中,它说当lat/long不是一个数字时会出现错误,但我不明白在我的json中lat/long怎么不是数字。这是我在Chrome中得到的堆栈跟踪:Javascript 具有传单贴图的LatLng对象无效,javascript,angularjs,leaflet,Javascript,Angularjs,Leaflet,当我在Angular和Rails应用程序中使用sploate.js和Cloudmade时,我完全无法解决一个奇怪的地图错误。这些映射在几乎所有的映射上都有效,除了一些关于staging的映射(对于开发来说很好),我得到了:Uncaught Error:Invalid LatLng object,它说它是未定义的。我从一个JSON中获取了lat和long,我已经验证了JSON中存在lat和long,并且相同的lat/long用于类似的映射。在传单源代码中,它说当lat/long不是一个数字时会出现
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);
var map=L.map('map').setView([$scope.lat,$scope.long],11);
L.tileLayer('http://{s}.tile.cloudmake.com/API key/997/256/{z}/{x}/{y}.png'{
属性:“地图数据©;贡献者,图像©”,
最大缩放:18
}).addTo(地图);
当然,链接被替换为我的API密钥。我正在使用最新的稳定版本的传单,其中包含了我能找到的最好的谷歌搜索结果。“我的地图”位于从引导使用的选项卡式内容中。这里会有什么问题?或者我该怎么调试这个?非常感谢您提供的任何帮助,如果需要,我很乐意提供更多详细信息。不确定您是否能够完成此操作,但我遇到了类似的问题,lat/lng是字符串,如“53.12345”、“-1.6789”。如果是这种情况,请更改字符串中返回的数据或将返回的字符串解析为float,例如:
var marker = {
lat: parseFloat(hotelLat),
lng: parseFloat(hotelLng),
...
}
尝试用[51.505,-0.09]来remplace[$scope.lat,$scope.long]看看会发生什么。