【问题标题】:is there any way to get city name for Google Place picker android有什么方法可以获取 Google Place picker android 的城市名称
【发布时间】:2017-07-10 05:19:19
【问题描述】:

我正在尝试从 Google 地点选择器中获取城市名称。有什么方法可以使用地点选择器 API 获取城市名称。我知道我们不能简单地通过放置 place.getCity(); 从 API 获取它下面是我的代码。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if(requestCode == REQUEST_PLACE_PICKER){

            if(resultCode==RESULT_OK){

                Place place = PlacePicker.getPlace(data,this);

                final CharSequence name = place.getName();
                final CharSequence address = place.getAddress();
                final CharSequence phone = place.getPhoneNumber();
                final String placeId = place.getId();
                final LatLng latLng = place.getLatLng();

                if(place.getLocale() != null) {
                    String aname = place.getLocale().toString();
                    areaname.setText(aname);
                }

                location.setText(address);
                gname.setText(name);
                latlon.setText(String.valueOf(latLng));

            }
        }
    }

我不希望城市中有任何空值。我读到Geocoder 会给出大部分为空值。

【问题讨论】:

    标签: android google-geocoder gmsplacepicker


    【解决方案1】:

    尝试使用地理编码器

    final Place place = PlacePicker.getPlace(this,data);
    Geocoder geocoder = new Geocoder(this);
    try
    {
        List<Address> addresses = geocoder.getFromLocation(place.getLatLng().latitude,place.getLatLng().longitude, 1);
        String address = addresses.get(0).getAddressLine(0);
        String city = addresses.get(0).getAddressLine(1);
        //String country = addresses.get(0).getAddressLine(2);  
    
    } catch (IOException e)
    {
    
        e.printStackTrace();
    }
    

    你也可以尝试调用webservice并解析json结果来获取city。 只需在下面的 url 中传递您从 placepicker 获得的 lat/lng。 结果中的administrator_area_level_2 代表城市

    http://maps.googleapis.com/maps/api/geocode/json?latlng=23,72&sensor=true

    【讨论】:

    • 错误将地址类型更改为 java.util.List
    • 导入 java.util.List;
    • 地址>import android.location.Address;
    • 好吧,我确实改变了。但是当我尝试在文本视图中设置它时给出非常奇怪的值
    • 感谢您帮助南希。我刚刚添加了 city.setText(String.valueOf(addresses.get(0).getLocality()));
    猜你喜欢
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多