如何从经纬度获取地址android Google Map v2 [英] How to get address from latitude and longitude android google map v2

查看:432
本文介绍了如何从经纬度获取地址android Google Map v2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从Android Google Maps v2中的经度和纬度获取地址,但是会出错.

I am trying to get an address from latitude and longitude in Android Google Maps v2, but it errors.

这是我的代码:

case PLACES_DETAILS :
                final HashMap<String, String> hm = result.get(0);

                final double latitude = Double.parseDouble(hm.get("lat"));
                final double longitude = Double.parseDouble(hm.get("lng"));

                SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
                googleMap = fm.getMap();

                final LatLng point = new LatLng(latitude, longitude);
                CameraUpdate cameraPosition = CameraUpdateFactory.newLatLngZoom(point, 10);
                CameraUpdate cameraZoom = CameraUpdateFactory.zoomBy(5);

                googleMap.moveCamera(cameraPosition);
                googleMap.animateCamera(cameraZoom);
                googleMap.getCameraPosition();
                //Log.e("Lat", String.valueOf(googleMap.getCameraPosition().target.latitude));
                //Log.e("Long", String.valueOf(googleMap.getCameraPosition().target.latitude));
                //googleMap.setOnMyLocationChangeListener(myLocationChangeListener);

                googleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
                    @Override
                    public void onCameraChange(CameraPosition cameraPosition) {
                        Log.e("Lat", String.valueOf(googleMap.getCameraPosition().target.latitude));
                        Log.e("Long", String.valueOf(googleMap.getCameraPosition().target.longitude));
                    }
                });

推荐答案

使用以下代码段:

try { 
Geocoder geo = new Geocoder(youractivityclassname.this.getApplicationContext(), Locale.getDefault());
List<Address> addresses = geo.getFromLocation(latitude, longitude, 1);
if (addresses.isEmpty()) {
    yourtextfieldname.setText("Waiting for Location"); 
} 
else { 
    if (addresses.size() > 0) {
        yourtextfieldname.setText(addresses.get(0).getFeatureName() + ", " + addresses.get(0).getLocality() +", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryName());
        //Toast.makeText(getApplicationContext(), "Address:- " + addresses.get(0).getFeatureName() + addresses.get(0).getAdminArea() + addresses.get(0).getLocality(), Toast.LENGTH_LONG).show(); 
    } 
} 
}    
   catch (Exception e) {
e.printStackTrace(); // getFromLocation() may sometimes fail
} 

参考: https://mobiforge.com/design-development/using-google-maps-android

这篇关于如何从经纬度获取地址android Google Map v2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆