我试图通过在我的ASP MVC地图应用程序上使用他们的无用户API公式访问Foursquare上的场地,但无法管理它的工作。
我的代码是:
var fsObj = [];
var url = 'https://api.foursquare.com/v2/venues/search?ll=' + lat + ',' + lng + '&query=' + type + '&radius=' + distance + '&intent=browse&client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&client_secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&v=20120304';
$.getJSON(url, {}, function (data) {
venues = data['response']['groups'][0]['items'];
for (var i = 0; i < venues.length; i++) {
var fsRes = {
'Id': venues[i]['venue']['id'],
'Name': venues[i]['venue']['name'],
'Latitude': venues[i]['venue']['location']['lat'],
'Longitude': venues[i]['venue']['location']['lng'],
'Type': type,
'Vicinity': venues[i]['venue']['location']['address'],
'Reference': "Foursquare"
};
fsObj.push(fsRes);
}
printMap(fsObj);
});
正如您所理解的:我从地图中获取了lat,lng和distance值。也试图打印结果。
当我在浏览器上使用相同的网址时,它会得到结果,但遗憾的是在此代码中没有。这让我觉得当我尝试在printMap线上放置一个断点时,json请求可能不是很好;它甚至不会停止。我做错了吗?
任何帮助都将受到高度赞赏。非常感谢你。
新方法,但仍然没有机会:
var getFoursquare = function (p, g, q) {
var lat = p.lat();
var lng = p.lng();
var url = 'https://api.foursquare.com/v2/venues/search?ll=' + lat + ',' + lng + '&query=' + q + '&radius=' + g + '&intent=browse&client_id=XXXXXXXXXXXXXXXX&client_secret=XXXXXXXXXXXXXXXXXXXXXXXXXX&v=20120305';
$.getJSON(url, function (data) {
$.each(data.response.venues, function (i, venues) {
fsRes = {
'Id': venues.id,
'Name': venues.name,
'Latitude': venues.location.lat,
'Longitude': venues.location.lng,
'Type': q,
'Vicinity': venues.location.address,
'Reference': "Foursquare"
};
fsObj.push(fsRes);
});
printMap(fsObj);
}).error(function (event, jqXHR, ajaxSettings, thrownError) { alert(event); alert(jqXHR); alert(thrownError); });
}
答案 0 :(得分:0)
venues = data['response']['groups'][0]['items'];
响应对象中没有'groups'字段。你想要
venues = data['response']['venues'];
您可能在开始指定版本控制ID之前编写了此代码。群组于2011年6月被删除,因此所有具有最新版本ID的呼叫都不再返回。