Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有传单贴图的LatLng对象无效_Javascript_Angularjs_Leaflet - Fatal编程技术网

Javascript 具有传单贴图的LatLng对象无效

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不是一个数字时会出现

当我在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中得到的堆栈跟踪:

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 &copy; <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]看看会发生什么。