Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Foursquare API java只提供一个附近的位置_Java_Android_Api_Foursquare - Fatal编程技术网

Foursquare API java只提供一个附近的位置

Foursquare API java只提供一个附近的位置,java,android,api,foursquare,Java,Android,Api,Foursquare,我们正在尝试使用foursquare API在特定类别中查找距离用户最近的x个位置。按照foursquare API和github repo下的指导原则,我们运行了以下代码,只收到了一次点击 1 Whisknladle 查询应返回多个位置。当我们试图将long/lat更改为manhattan时,我们收到了0个结果。你知道为什么会发生这种情况或者如何解决吗?我们尝试将空值更改为空字符串并更改值,但没有任何效果 附件是我们使用的代码 package fi.foyt.foursquare.e

我们正在尝试使用foursquare API在特定类别中查找距离用户最近的x个位置。按照foursquare API和github repo下的指导原则,我们运行了以下代码,只收到了一次点击

1
Whisknladle
查询应返回多个位置。当我们试图将long/lat更改为manhattan时,我们收到了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()); 
    }
  }
包fi.foyt.foursquare.example;
导入fi.foyt.foursquare.api.FoursquareApi;
导入fi.foyt.foursquare.api.foursquareApException;
导入fi.foyt.foursquare.api.Result;
导入fi.foyt.foursquare.api.entities.compactVince;
导入fi.foyt.foursquare.api.entities.venuessearch结果;
/**
*基本搜索示例
*@TODO-请提供更多示例:)
*@作者rmangi
*
*/
公共类基本示例{
公共静态void main(字符串[]args){
字符串ll=args.length>0?args[0]:“32.8400117.2769”;
//字符串ll=“40.7903,73.9597”;
试一试{
(新BasicExample()).SearchVinces(ll);
}捕获(Foursquare){
//TODO:错误处理
System.out.println(e.getMessage());
}
}
public void searchVinces(字符串ll)引发FoursquareAPI异常{
//首先,我们需要初始化FoursquareApi。
FoursquareApi FoursquareApi=新的FoursquareApi(“Akhmsybipitcrx3uwoc4cbh2yqfi3x5lstycj4pmhemrjbt”,“WFDOPMHICSVZ0Q3F5oodjv1Rhca4c1A0cBefkXaxuxjahvr”https://api.foursquare.com/v2/");
//客户端初始化后,我们可以进行查询。
结果=foursquareApi.venuesSearch(ll,null,null,null,null,null,null,null,null,null,null,null,null);
System.out.println(“testingddd”);
if(result.getMeta().getCode()==200){
//如果查询是确定的,我们最终可以对数据做一些事情
对于(CompactVincement:result.getResult().getVinces()){
//TODO:我们需要做些什么来收集数据
System.out.println(result.getResult().getVinces().length);
System.out.println(vention.getName());
}
}否则{
//TODO:正确的错误处理
System.out.println(“发生错误:”;
System.out.println(“代码:+result.getMeta().getCode());
System.out.println(“类型:”+result.getMeta().getErrorType());
System.out.println(“详细信息:+result.getMeta().getErrorDetail());
}
}

}

该代码只命中一次的原因是,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);
    
    Result-Result=foursquareApi.venuesSearch(ll,null,
    零,零,零,零,零,零,零,零,零,零,零,零,零,零);
    
    但我不确定这是否是因为我使用了不同版本的foursquare api java库

  • 您应该从发布的代码中编辑出您的密钥:)