Android中通过经纬度来过去到城市名称

Android中通过经纬度来过去到城市名称

  • 废话也不多说,直接上代码,代码可以直接拷贝过去用.
  • 获取当前经纬度的方法
    public static void getGPSLocation(Context context){
        double latitude = 0.0;
        double longitude = 0.0;

        LocationManager locationManager =                                               (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
        //判断GPS是否启动
        if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
            //通过GPS获取位置
            Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            if(location != null){
                latitude = location.getLatitude();
                longitude = location.getLongitude();
            }else{
                //位置改变的一个监听
                LocationListener locationListener = new LocationListener(){
                    public void onLocationChanged(Location location) {
                        //位置改变
                    }
                    public void onStatusChanged(String provider, int status, Bundle extras) {
                        //GPS状态变化时触发
                    }
                    public void onProviderEnabled(String provider) {
                        //GPS开启时触发
                    }
                    public void onProviderDisabled(String provider) {
                        //GPS禁用时触发
                    }
                };

                locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0, locationListener);

                //通过网络获取位置
                location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                if(location != null){
                    latitude = location.getLatitude();
                    longitude = location.getLongitude();
                }
            }
            //最后打印出经度和纬度
            Log.e("TAG", "Lat:"+latitude+";Lon="+longitude);
        }
    }
  • 通过我们以上方法获取到经纬度后,我们可以通过一下的代码来获取到我们所在的城市名
    // 获取地址信息
    private static List<Address> getAddress(Location location) {
        //用来接收位置的详细信息
        List<Address> result = null;
        try {
            if (location != null) {
                Geocoder gc = new Geocoder(mContext, Locale.getDefault());
                result = gc.getFromLocation(location.getLatitude(),
                        location.getLongitude(), 1);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
  • 最后呢,大家都不要忘记了最重要的一个步骤,就是添加我们所需要的权限
    <!-- 连接互联网Internet权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- GPS定位权限 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值