申请百度key:http://lbsyun.baidu.com/

1、jar包下载地址:https://pan.baidu.com/s/1J-boj0ct9oJ8YjXMR8X4KA

下载并复制到libs下,Add As Library

如需获取SHA1值:https://blog.csdn.net/meixi_android/article/details/72547966

2、jar包复制到libs文件下,并Add As library

3、Java代码

static BDLocation lastLocation = null;
private LocationClient mLocClient;
public MyLocationListenner myListener = new MyLocationListenner();//自定义方法
    public class MyLocationListenner implements BDLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {if (location == null) {return;}if (lastLocation != null) {if (lastLocation.getLatitude() == location.getLatitude() && lastLocation.getLongitude() == location.getLongitude()) {Log.d("map", "same location, skip refresh");// mMapView.refresh(); //need this refresh?return;}}String addrlg; //定位结果lastLocation = location;if (!TextUtils.isEmpty(lastLocation.getLocationDescribe())){addrlg = lastLocation.getLocationDescribe();}else if (lastLocation.hasAddr()) {addrlg = lastLocation.getAddrStr();}else {addrlg = "定位失败...";return;}
//            String city = lastLocation.getCity();double lat = lastLocation.getLatitude();double lot = lastLocation.getLongitude();ShareUtil.sharedPstring("nowla",String.valueOf(lat));ShareUtil.sharedPstring("nowlo",String.valueOf(lot));ShareUtil.sharedPstring("nowad",addrlg);Log.i("lgq","............"+addrlg+"........"+lat+"......."+lot);
//            Toast.makeText(MainActivity.this, addrlg+"........"+lat, Toast.LENGTH_SHORT).show();
//            tv_bottom_bar_me.setText(addrlg);
//            mBaiduMap.animateMapStatus(u);}}

附:

sb.append("\nlocType : ");// 定位类型
         sb.append(location.getLocType());
         sb.append("\nlatitude : ");// 纬度
         sb.append(location.getLatitude());
         sb.append("\nlontitude : ");// 经度
         sb.append(location.getLongitude());
         sb.append("\nradius : ");// 半径
         sb.append(location.getRadius());
         sb.append("\nCountryCode : ");// 国家码
         sb.append(location.getCountryCode());
         sb.append("\nCountry : ");// 国家名称
         sb.append(location.getCountry());
         sb.append("\ncitycode : ");// 城市编码
         sb.append(location.getCityCode());
         sb.append("\ncity : ");// 城市
         sb.append(location.getCity());
         sb.append("\nDistrict : ");// 区
         sb.append(location.getDistrict());
         sb.append("\nStreet : ");// 街道
         sb.append(location.getStreet());
         sb.append("\naddr : ");// 地址信息
         sb.append(location.getAddrStr());
         sb.append("\nDirection(not all devices have value): ");
         sb.append(location.getDirection());// 方向
         sb.append("\nlocationdescribe: ");
         sb.append(location.getLocationDescribe());// 位置语义化信息
         sb.append("\nPoi: ");// POI信息

private void showMapWithLocationClient() {mLocClient = new LocationClient(this);mLocClient.registerLocationListener(myListener);LocationClientOption option = new LocationClientOption();option.setOpenGps(true);// open gpsoption.setCoorType("bd09ll");//可选,默认0,即仅定位一次,设置定时发起定位请求的间隔需要大于等于1000ms才是有效的/** 定位sdk提供2种定位模式,定时定位和app主动请求定位。* setScanSpan < 1000 则为 app主动请求定位;* setScanSpan >=1000,则为定时定位模式(setScanSpan的值就是定时定位的时间间隔))* 定时定位模式中,定位sdk会按照app设定的时间定位进行位置更新,定时回调定位结果。此种定位模式适用于希望获得连续定位结果的情况。* 对于单次定位类应用,或者偶尔需要一下位置信息的app,可采用app主动请求定位这种模式。*///option.setScanSpan(2000);//可选,设置是否需要地址信息,默认不需要option.setIsNeedAddress(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”option.setIsNeedLocationDescribe(true);//设置是否需要返回位置POI信息,可以在BDLocation.getPoiList()中得到数据option.setIsNeedLocationPoiList(true);//在网络定位时,是否需要设备方向 true:需要 ; false:不需要option.setNeedDeviceDirect(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死option.setIgnoreKillProcess(false);//可选,默认false,设置是否收集CRASH信息,默认收集option.SetIgnoreCacheException(false);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要option.setEnableSimulateGps(false);option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);mLocClient.setLocOption(option);mLocClient.start();
}

4、运行

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);showMapWithLocationClient();
}

权限

<uses-permission android:name="android.permission.ACCESS_GPS" />
<!-- 获取精确gps位置 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 获取粗略位置 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 允许程序访问额外的定位提供者指令获取模拟定位信息 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!-- 网络链接 -->
<uses-permission android:name="android.permission.INTERNET" />

6.0以上版本获取权限:https://blog.csdn.net/meixi_android/article/details/82114026

配置百度服务到manifest

<serviceandroid:name="com.baidu.location.f" android:enabled="true"android:process=":remote">
</service>

配置key

<meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="qn3ZT2xT7yDgbIgkaPooGpDdMjziASZj" />

谷歌API也可以实现啦:https://blog.csdn.net/meixi_android/article/details/84955589

Android 获取经纬度,地理位置,省市区相关推荐

  1. android获取经纬度代码

    android 4.4上如何获取经纬度信息 由于Android对于APN的网络API没有公开,不过我们可以阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭APN.大家可 ...

  2. android 获取经纬度(百度地图)

    今天做原生获取经纬度,本来以为很容易,毕竟之前也做过,我使用的是 LocationManager 和 Location 来获取,但是,最终我怎么也获取不到经纬度,debug才发现最终的 Locatio ...

  3. android 经纬度方向,Android获取经纬度、计算距离、方位角

    最近在Android上作GPS的东西,获取经纬度.计算距离.方位角,感受在搞GIS样.固然,玩笑了,玩玩而已,稍微总结一下.html 经度指示南北方向,纵向.android 纬度指示东西方向,横向.g ...

  4. vue项目接入高德地图点击地图获取经纬度及省市区

    准备工作,可以先看官方的介绍,JSAPI结合Vue使用,这个不需要在main.js中引入 index.html中 //如果只需要获取经纬度可以跳过这步,经纬度逆解析为详细地址时需要配置这个 <s ...

  5. Android 获取经纬度。2018年写

    本博客内容 获取当前经纬度信息,显示到textView里 具体代码 1. 添加权限 AndroidManifest.xml <uses-permission android:name=" ...

  6. android 获取经纬度 有负值吗,获取纬度和经度的负值

    我想在我的应用程序中得到经度和纬度的值,我已经做到了,但问题是我用值得到了负号.虽然值是正确的,但不知道为什么用值得到负号. java类代码: package com.vshine.neuron.te ...

  7. Android 获取地理位置信息 封装好了 直接用

    前言:花了一个早上研究了以下android获取经纬度,然后网上的参考资料都是杂七杂八,基本上都是过去几年的,现在我用 android6.0参照别人的结果发生好多错误,我的内心几乎是崩溃的.后来,不断百 ...

  8. 安卓(android)使用GPS,获取经纬度

    android获取经纬度,有这个两个类需要用: 1.LocationManager位置管理器 2.Location位置类 第一步:获取LocationManager实例 locationManager ...

  9. js百度地图获取当前定位经纬度及省市区

    首先需要引入百度地图api 和jq <script type="text/javascript" src="https://api.map.baidu.com/ap ...

最新文章

  1. 期末复习、化学反应工程科目(第八、九章)
  2. maven2——设置镜像篇
  3. Union与Union All的区别
  4. 20 FI配置-财务会计-定义税务科目
  5. Oracle放大招:MySQL 即将支持 Hash Join
  6. LeetCode Length of Longest Fibonacci Subsequence
  7. [剑指Offer]9.用两个栈实现队列
  8. Rust: Integers: Recreation One
  9. 【已解决】map container is already initialized——页面切换瓦片图不出来的问题
  10. 任正非对话卡普兰:5G是一个数据通道,未来最大的产业是人工智能
  11. 祥云发卡网站源码带详细图文搭建教程
  12. Excel中插入图表后在设计选项卡无法选择样式解决办法
  13. 最全的PHP开发Android应用程序
  14. C语言利用顺序表求两个集合的差集
  15. 使用hutool工具导出Excel标题自定义顺序
  16. 【复变函数与积分变换】05. 留数
  17. irqbalance机制分析
  18. 【maven本地打包脚本】Git/Svn代码更新+maven打包流水线
  19. 小陈学JS 数组
  20. 【CSDN竞赛第5期】编程竞赛总结

热门文章

  1. [css] 举例说明实现圆角的方式有哪些?
  2. 工作305:对选择的数值清空
  3. 前端学习(2824):数据绑定前的代码编辑器技巧
  4. 前端学习(2624):state
  5. 工作47:继续理解父子组件
  6. “睡服”面试官系列第十六篇之Symbol(建议收藏学习)
  7. 前端学习(1603):脚手架组件使用
  8. Qt treeWidget 查找指定字段内容的条目并跳转到该条目
  9. 树莓派使用STEP4:安装vim
  10. Linux:驱动程序直接编译到内核(源自国嵌的视频教学)