我使用jQuery从以下URL获取JSON:
https://api.chartbeat.com/live/geo/v3/?apikey=fakekeytoshowtheurl&host=example.com
这是我得到的JSON的一个例子:
"lat_lngs": [[25, -80, 9], [26, -80, 6], [27, -80, 1], [29, -98, 2], [29, -95, 7], [30, -97, 3], [33, -117, 6], [33, -112, 25], [33, -111, 33], [34, -112, 1], [34, -111, 1], [36, -109, 1], [38, -97, 2], [40, -73, 1], [42, -78, 2]]
我正在尝试使用jQuery并获取每个lat_lng并运行一个函数。
这是我目前没有的代码。
function addMarker(latitude, longitude) { marker = new google.maps.Marker({ position: new google.maps.LatLng(latitude, longitude), map: map }); } $.get('https://api.chartbeat.com/live/geo/v3/?apikey=fakekeytoshowtheurl&host=example.com', function(data) { $.each(data['lat_lngs'], function() { var latlng = data['lat_lngs'].split(','); addMarker(latlng[0], latlng[1]); }) });
这不起作用,我得到一个错误,说对象[对象数组]没有方法’拆分’,无论我尝试了什么,我都无法得到任何工作。 我只想从列出的每个lat_lng中获取前两个数字,然后运行addMarker函数(lat,long)。
有人有想法吗?
$.each(data['lat_lngs'], function(index, value) { addMarker(value[0], value[1]); })
说明: data['lat_lngs']
是一个数组数组。 当您使用$.each
迭代它时,每次迭代都会接收data['lat_lngs']
数组的一个元素作为其value
。
每个元素本身就是一个数组。 (不是字符串!不需要split()
任何东西。)
$.each
还将this
值设置为等于当前迭代的值。 所以你也可以这样做:
$.each(data['lat_lngs'], function() { addMarker(this[0], this[1]); })
以上就是jQuery教程分享jQuery解析数据并获取lat和lng并插入到Google Maps`中相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/532607.html