0

我试图从一个数组中存储纬度和经度,它的长度有时是 1 ,有时是 2 或 3 。

这是代码:

    var latitude,longitude;
    $.each(data.results, function (i, item) {
    var name = item.from_user;
    var img = item.profile_image_url;
    var text=item.text;
    var profile_img=item.profile_image_url;
    var url=(item.entities.urls.length > 0 ? item.entities.urls[0].url : '');
    Placemaker.getPlaces(text,function(o){
    console.log(o);
    if (typeof(o.match!=='undefined') ||(o.length==1)){
     latitude=o.match.place.centroid.latitude, longitude=o.match.place.centroid.longitude; 
     console.log(latitude,longitude);}
     else if (typeof(o.match[0]!=='undefined') ||(o.match.length==2)){
        latitude=o.match[0].place.centroid.latitude, longitude=o.match[0].place.centroid.longitude; 
     console.log(latitude,longitude);
     }

    });
    array.push({name:name,img:img,text:text,latitude:latitude,longitude:longitude,profile_img:profile_img,url:url});

当数组长度为 1 时,从这段代码中我只得到纬度和经度值。所以只有第一个 if 被执行。我正在尝试修复其他数组,以便我也可以从其他数组中获取值,因为当我使用 console.log 输出数组时,纬度和经度的值不存在。我猜想循环必须在将所有值放入数组之前完成获取它们。

我正在尝试通过推文位置在谷歌地图上输出推文。我没有使用地理编码,而是使用 yahoo placemaker 从推文的文本中定位位置。

这是 placemaker 数组结构的快照http://www.flickr.com/photos/codepo8/3553188917/

这是另一个试图获取值的数组 Object { match=[2]}

4

1 回答 1

0

typeof(o.match!=='undefined')总是“布尔”我认为你想要 typeof(o.match)!=='undefined'或只是 typeof o.match!=='undefined'

于 2012-08-12T19:04:42.073 回答