2 回答
![?](http://img1.sycdn.imooc.com/545862aa0001f8da02200220-100-100.jpg)
TA贡献1880条经验 获得超4个赞
总而言之,问题是当我使用 PlacePicker 选择一个随机点时,我无法获得该地点的名称?
回答 -
这样做的原因是谷歌提供了地球上每个地方的纬度和经度。所以几乎所有地方都有地址。但说到名字,所有的地方都没有名字。因此,当您从 PlacePicker 中选择一个随机点时,它可能会或可能不会为其分配名称。如果它有名称,则 place.getName() 将为您提供。但如果它没有名称 place.getName() 将为您提供该地点的纬度和经度。
此外,我通过传递 place.getId() 并检索地点名称,使用 GeoDataClient API 验证了这一点。但它也返回那个地方有名字的名字,否则它返回那个地方的纬度和经度。
而当涉及到 PlaceAutoComplete 时,它只显示可以通过名称搜索的地方。
![?](http://img1.sycdn.imooc.com/54584dd900014f6c02200220-100-100.jpg)
TA贡献1842条经验 获得超12个赞
我得到了解决方案!只需检查地点类型,如果地点类型为 0,只需使用地址,因为它是从随机选择的地点,并带有“选择此位置”,输出是坐标
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_PLACE_PICKER) {
if (resultCode == Activity.RESULT_OK) {
final Place place = PlacePicker.getPlace(getActivity(), data);
if (place.getPlaceTypes().get(0).intValue() == 0) {
mLocationNameTextView.setText(place.getAddress().toString());
} else {
mLocationNameTextView.setText(place.getName(););
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}
添加回答
举报