【问题标题】:Android: Is there a way to get local city wallpapers by checking the user's location?Android:有没有办法通过查看用户的位置来获取本地城市壁纸?
【发布时间】:2015-07-17 21:58:51
【问题描述】:

我想知道是否有用于此的 API。我的想法是能够根据您的地理位置获取城市或历史地标的壁纸。

我查看了 Picasa 和 Google,但找不到任何可以为我提供解决方案的特别内容。

【问题讨论】:

标签: android


【解决方案1】:

TL;DR

这可以通过 Location APIPlaces API 实现。但是,您必须同时使用客户端 Android API 和 Web 服务确保异步执行 Web 请求,因为 Web 服务主要用于服务器端请求。

注意:大部分信息直接来自 developer.android.com 和developers.google.com。以下是相关链接:

https://developer.android.com/training/location/receive-location-updates.html https://developers.google.com/places/webservice/search https://developers.google.com/places/webservice/photos

详情

无论如何,您大多需要latitude,longitude,因此对于这部分来说,一个简单的位置请求就足够了。下面的sn-p代码演示了如何在Android上获取经纬度。

@Override
public void onLocationChanged(Location location) {
  double latitude = location.getLatitude();
  double longitude = location.getLongitude();
}

要从 Places API 获取照片,您需要使用 Web Service API。您至少需要执行 Place Search 请求才能获取至少一张照片参考。

注意:返回的照片数量因请求而异。

  • 附近搜索或文本搜索将最多返回数组中的一个照片元素。
  • 雷达搜索不返回任何照片信息。
  • 详细信息请求将返回最多十个照片元素。

地点搜索请求是以下形式的 HTTP URL: https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters

这里是请求的参数。

  • key
  • location - 你关心的部分。检索地点信息的纬度/经度。这必须指定 作为纬度,经度。
  • radius
  • rankby=distance

以下示例是在澳大利亚悉尼某点方圆 500m 范围内搜索类型为“food”的地点的搜索请求,其名称中包含“cruise”一词:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=cruise&key=API_KEY


查询照片对象数组photos[] 的响应。照片对象将有一个photo_reference — 一个字符串,用于在您执行照片请求时识别照片。使用它来执行如下所述的照片请求。

地点照片请求是以下形式的 HTTP URL: https://maps.googleapis.com/maps/api/place/photo?parameters

这里是请求的参数。

  • key
  • photoreference - 你真正关心的部分。
  • maxheightmaxwidth

一个示例请求如下所示。此请求将返回引用的图像,并调整其大小,使其最大为 400 像素宽。

https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CnRtAAAATLZNl354RwP_9UKbQ_5Psy40texXePv4oAlgP4qNEkdIrkyse7rPXYGd9D_Uj1rVsQdWT4oRz4QrYAJNpFX7rzqqMlZw2h2E2y5IKMUZ7ouD_SlcHxYq1yL4KbKUv3qtWgTK0A6QbGh87GB3sscrHRIQiG2RrmU_jF4tENr9wGS_YxoUSSDrYjWmrNfeEHSGSc3FyhNLlBU&key=API_KEY

因为您可以请求调整大小的图像,所以您不一定需要在客户端进行自定义调整大小,这对内存分配来说是一个巨大的优势。

【讨论】:

    猜你喜欢
    • 2017-08-08
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多