我们正在尝试使用foursquare API来查找特定类别中用户最近的x位置。遵循foursquare API https://developer.foursquare.com/docs/venues/search和此github repo https://github.com/wallabyfinancial/foursquare-api-java下的指南,我们运行了以下代码并且只收到了一次
1
Whisknladle
查询应该返回多个位置。当我们尝试将长/拉特改为曼哈顿时,我们收到了0个结果。知道为什么会这样或者如何解决它?我们尝试将空值更改为空字符串并更改值,但没有任何效果。
附上我们使用的代码。
package fi.foyt.foursquare.example;
import fi.foyt.foursquare.api.FoursquareApi;
import fi.foyt.foursquare.api.FoursquareApiException;
import fi.foyt.foursquare.api.Result;
import fi.foyt.foursquare.api.entities.CompactVenue;
import fi.foyt.foursquare.api.entities.VenuesSearchResult;
/**
* Basic search example
* @TODO - more examples please :)
* @author rmangi
*
*/
public class BasicExample {
public static void main(String[] args) {
String ll = args.length > 0 ? args[0] : "32.8400, 117.2769";
//String ll = "40.7903, 73.9597";
try {
(new BasicExample()).searchVenues(ll);
} catch (FoursquareApiException e) {
// TODO: Error handling
System.out.println(e.getMessage());
}
}
public void searchVenues(String ll) throws FoursquareApiException {
// First we need a initialize FoursquareApi.
FoursquareApi foursquareApi = new FoursquareApi("AKHMSYBUPITCRX3UWOC4CBH2YQFI3X5LSTYCJ4PMFHEMRJBT", "WFDOPMHICSVZ0Q3F5OODJV1RHCA4C1A0CBEFKXADXUXJAHVR", "https://api.foursquare.com/v2/");
// After client has been initialized we can make queries.
Result<VenuesSearchResult> result = foursquareApi.venuesSearch(ll, null, null, null, null, null, null, null, null, null, null, null, null);
System.out.println("testingddddd");
if (result.getMeta().getCode() == 200) {
// if query was ok we can finally we do something with the data
for (CompactVenue venue : result.getResult().getVenues()) {
// TODO: Do something we the data
System.out.println(result.getResult().getVenues().length);
System.out.println(venue.getName());
}
} else {
// TODO: Proper error handling
System.out.println("Error occured: ");
System.out.println(" code: " + result.getMeta().getCode());
System.out.println(" type: " + result.getMeta().getErrorType());
System.out.println(" detail: " + result.getMeta().getErrorDetail());
}
}
}
答案 0 :(得分:1)
你只收到该代码的一个命中的原因是,看起来foursquare预计纬度和经度被表示为西部和南部(分别为本初子午线和赤道部分)的位置为负,而位置为正东部和北部。
如果您更改了传递给"32.8400, -117.2769"
的坐标字符串,那么您应该在加利福尼亚州拉霍亚附近找到许多场地。 (Whisknladle被列为在中国,虽然这是该场地数据的问题)。
如果您更改为您为曼哈顿注释掉的坐标,则您遇到的问题是经度坐标需要为负,即"40.7903, -73.9597"
。你得到的坐标有很多奇怪的结果,这些坐标返回的场所被命名为在曼哈顿,但是他们的国家被列为吉尔吉斯斯坦("40.7903, 73.9597"
就在哪里。我想这又是一个问题他们的数据。
另外还有两点需要注意:
我有两个从行
中删除最后两个空值Result<VenuesSearchResult> result = foursquareApi.venuesSearch(ll, null,
null, null, null, null, null, null, null, null, null, null, null);
但我不确定这是否是由于我使用了不同版本的foursquare-api-java库
您应该从您发布的代码中编辑您的密钥:)