为了账号安全,请及时绑定邮箱和手机立即绑定

从坐标谷歌地图Android获取地址

从坐标谷歌地图Android获取地址

沧海一幻觉 2021-06-14 13:14:23
我正在尝试一个位置应用程序,目前我在标记上有该位置的坐标。现在,如何从已有的坐标中获取位置名称?我的代码://search add addressprivate void geoLocate() {    Log.d( TAG, "geoLocate: geolocating" );    String searchString = mSearchText.getText().toString();    Geocoder geocoder = new Geocoder( MapActivity.this );    List<Address> list = new ArrayList<>();    try {        list = geocoder.getFromLocationName( searchString, 1 );    } catch (IOException e) {        Log.e( TAG, "geoLocate: IOException" + e.getMessage() );    }    if (list.size() > 0) {        Address address = list.get( 0 );        Log.d( TAG, "geoLocate: found a location:  " + address.toString() );        moveCamera( new LatLng( address.getLatitude(), address.getLongitude() ), DEFAULT_ZOOM,address.getAddressLine( 0 ) );    }}这是我的标记// add markerpublic void addMarkers() {    mMap.setOnMapClickListener( new GoogleMap.OnMapClickListener() {        @Override        public void onMapClick(LatLng latLng) {            MarkerOptions markerOptions = new MarkerOptions();            markerOptions.position( latLng );            markerOptions.title( latLng.latitude + " : " + latLng.longitude );            mMap.clear();            mMap.animateCamera( CameraUpdateFactory.newLatLng( latLng ) );            mMap.addMarker( markerOptions );            shareView();        }    } );}
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您可以使用波纹管代码来获取基于 latlong 的地址


try {

        Geocoder geocoder;

        String city=null;

        List<Address> yourAddresses;

        geocoder = new Geocoder(this, Locale.getDefault());

        yourAddresses = geocoder.getFromLocation(yourLatitude, yourLongitude, 1);



    final String yourAddress = yourAddresses.get(0).getAddressLine(0);

    if (yourAddresses != null && yourAddresses.size() > 0) {

        android.location.Address address = yourAddresses.get(0);

        @SuppressWarnings("MismatchedQueryAndUpdateOfStringBuilder") StringBuilder sb = new StringBuilder();

        for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {

            sb.append(address.getAddressLine(i)).append("\n");

        }

        city = address.getLocality();

        Log.d("city", "onCreate: "+city);

    }


    } catch (IOException e) {

        e.printStackTrace();

    }


查看完整回答
反对 回复 2021-06-17
  • 1 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信