我想知道是否有这样的API。我的想法是能够根据您的地理位置获取城市或历史地标的壁纸。
我正在关注Picasa和Google,但无法找到可能给我解决方案的任何特定内容。
答案 0 :(得分:0)
使用位置API 和 Places API 可以实现这一点。但是,您必须使用客户端Android API和Web服务。 确保异步执行Web请求,因为Web Service主要用于服务器端请求。
注意:大部分信息都来自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
,因此对于此部分,一个简单的位置请求就足够了。以下代码片段演示了如何在Android上检索纬度和经度。
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
}
要从Places API获取照片,您需要使用Web服务API。至少,您需要执行地方搜索请求才能获得至少一个照片参考。
注意:返回的照片数量因请求而异。
- 附近搜索或文本搜索最多会返回数组中的一个照片元素。
- 雷达搜索不会返回任何照片信息。
- 详细信息请求最多可返回十个照片元素。
地方搜索请求是以下格式的HTTP网址: https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters
以下是请求的参数。
key
location
- 您关心的部分。围绕其检索地点信息的纬度/经度。必须指定 作为纬度,经度。radius
rankby=distance
以下示例是澳大利亚悉尼一个500米半径范围内“食物”类型的地点的搜索请求,其名称中包含“cruise”字样:
查询照片对象数组的响应photos[]
。照片对象将具有photo_reference
- 用于在执行照片请求时识别照片的字符串。使用它来执行下面描述的照片请求。
地方照片请求是以下格式的HTTP网址: https://maps.googleapis.com/maps/api/place/photo?parameters
以下是请求的参数。
key
photoreference
- 您真正关心的部分。maxheight
或maxwidth
示例请求如下所示。此请求将返回引用的图像,调整其大小,使其最多为400像素宽。
因为您可以请求调整大小的图像,所以您不一定需要在客户端进行自定义大小调整,这对内存分配来说是一个巨大的优势。