首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery用于解析数据并获取lat和lng,然后插入到Google Maps`中

jQuery用于解析数据并获取lat和lng,然后插入到Google Maps`中
EN

Stack Overflow用户
提问于 2013-12-19 03:27:32
回答 1查看 766关注 0票数 0

我正在使用jQuery从以下网址获取JSON:

代码语言:javascript
复制
http://api.chartbeat.com/live/geo/v3/?apikey=fakekeytoshowtheurl&host=example.com

下面是我得到的JSON的一个示例:

代码语言:javascript
复制
"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_lngs并运行一个函数。

这是我目前拥有的不能工作的代码。

代码语言:javascript
复制
function addMarker(latitude, longitude) {
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(latitude, longitude),
        map: map
    });
}

$.get('http://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]);
    })
});

这不起作用,我得到一个错误,说对象对象数组没有方法'split',无论我尝试什么,我都不能得到任何工作。我只想从列出的每个lat_lngs中获取前两个数字,并运行函数addMarker(lat,long)。

有谁有主意吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-19 03:32:33

代码语言:javascript
复制
$.each(data['lat_lngs'], function(index, value) {
    addMarker(value[0], value[1]);
})

说明:data['lat_lngs']是由数组组成的数组。当您使用$.each对其进行迭代时,每次迭代都会接收data['lat_lngs']数组的一个元素作为其value

每个元素本身就是一个数组。(不是字符串!不需要split()任何东西。)

$.each还将this值设置为等于当前迭代的值。所以你也可以这样做:

代码语言:javascript
复制
$.each(data['lat_lngs'], function() {
    addMarker(this[0], this[1]);
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20666740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档