我试图从一个数组中存储纬度和经度,它的长度有时是 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]}