【问题标题】:Locations in HTTP RequestsHTTP 请求中的位置
【发布时间】:2015-01-15 20:42:21
【问题描述】:

我想知道位置在 HTTP 请求中是如何工作的。我实际上希望我当前所在的位置成为请求的一部分,但我不确定如何执行此操作。

我将当前位置存储在一个 LatLng 对象中;我是否需要从中提取纬度和经度并将其放入请求中,如果需要,如何?或者有没有办法将 LatLng 对象作为一个整体包含在请求中?下面是我想要实现的示例

https://maps.googleapis.com/maps/api/place/nearbysearch/json?rankby=distance&location=************,***********&types=meal_takeaway&sensor=true&key=API_KEY

【问题讨论】:

    标签: android location httprequest google-places-api


    【解决方案1】:

    如果你问我认为你是什么,如何将你的坐标插入 URL,那么有几种方法可以做到。

    最简单的方法是这样的,假设 coords 是您的 LatLng 变量的名称,getLat()getLng() 是返回坐标的方法:

    String url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?rankby=distance&types=meal_takeaway&sensor=true&key=API_KEY&location=" + coords.getLat() + "," + coords.getLng();
    

    您只需插入参数。如果你想做一些更酷的事情,你可以覆盖你的 LatLng 对象的 toString() 方法,以正确的格式返回坐标。例如

    @Override
    public String toString(){
        return getLat() + "," + getLng();
    }
    

    这样做可以让我们将初始网址更改为以下内容:

    String url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?rankby=distance&types=meal_takeaway&sensor=true&key=API_KEY&location=" + coords.toString();
    

    为什么要这样做?原因有很多:它更简洁,更基于 OO,我更喜欢它的外观。

    至于插入您可能已经保存在字符串资源中的 API 密钥,您将执行非常类似的操作:

    String url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?rankby=distance&types=meal_takeaway&sensor=true&key=" + context.getResources().getString(R.string.your_api_key) + "&location=" + coords.toString();
    

    很明显,您需要某种上下文来获取资源,但这应该是可用的。只是向您展示一些不同的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多