【发布时间】:2015-07-17 21:58:51
【问题描述】:
我想知道是否有用于此的 API。我的想法是能够根据您的地理位置获取城市或历史地标的壁纸。
我查看了 Picasa 和 Google,但找不到任何可以为我提供解决方案的特别内容。
【问题讨论】:
标签: android
我想知道是否有用于此的 API。我的想法是能够根据您的地理位置获取城市或历史地标的壁纸。
我查看了 Picasa 和 Google,但找不到任何可以为我提供解决方案的特别内容。
【问题讨论】:
标签: android
这可以通过 Location API 和 Places 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
这里是请求的参数。
keylocation- 你关心的部分。检索地点信息的纬度/经度。这必须指定 作为纬度,经度。radiusrankby=distance
以下示例是在澳大利亚悉尼某点方圆 500m 范围内搜索类型为“food”的地点的搜索请求,其名称中包含“cruise”一词:
查询照片对象数组photos[] 的响应。照片对象将有一个photo_reference — 一个字符串,用于在您执行照片请求时识别照片。使用它来执行如下所述的照片请求。
地点照片请求是以下形式的 HTTP URL: https://maps.googleapis.com/maps/api/place/photo?parameters
这里是请求的参数。
keyphotoreference- 你真正关心的部分。maxheight或maxwidth
一个示例请求如下所示。此请求将返回引用的图像,并调整其大小,使其最大为 400 像素宽。
因为您可以请求调整大小的图像,所以您不一定需要在客户端进行自定义调整大小,这对内存分配来说是一个巨大的优势。
【讨论】: