如果我有一个位置的经度和纬度,我可以使用反向geocoding
获取有关位置的基本信息(如地址),但我想要更多信息。我正在使用Places API作为搜索栏,并返回大量数据,但我无法从纬度和经度获得位置。
我发现places API
支持place details
,但为此我需要一个我无法从任何地方获取的参考。
注意:我在dart中写这个,但是dart api只是javascript的包装,这就是为什么我将它标记为两者。
答案 0 :(得分:1)
PlaceResult对象包含reference
属性,该属性应在PlaceDetailsRequest
提供给PlacesService.getDetails
时使用。
答案 1 :(得分:1)
我最终选择了PlaceService.textSearch
路线。这并不像我预期的那么脏。最终的功能看起来像这样:
void placeFromLocation(LatLng location, void callback(PlaceResult)) {
GeocoderRequest geocoderRequest = new GeocoderRequest()
..location = location;
geocoder.geocode(geocoderRequest, (List<GeocoderResult> results, GeocoderStatus status) {
if(status == GeocoderStatus.OK) {
TextSearchRequest request = new TextSearchRequest()
..query = results[0].formattedAddress
..location = results[0].geometry.location
..radius = 40;
placeService.textSearch(request, (List<PlaceResult> results, PlacesServiceStatus status) {
if(status == PlacesServiceStatus.OK) {
callback(results[0]);
}else{
print("Not place found");
}
});
}else{
print("Error geocoding address");
}
});
}