Android 获取经纬度,地理位置,省市区
申请百度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 获取经纬度,地理位置,省市区相关推荐
- android获取经纬度代码
android 4.4上如何获取经纬度信息 由于Android对于APN的网络API没有公开,不过我们可以阅读源代码,然后进行数据库操作,系统会自动监听数据库的变化,从而实现开启或者关闭APN.大家可 ...
- android 获取经纬度(百度地图)
今天做原生获取经纬度,本来以为很容易,毕竟之前也做过,我使用的是 LocationManager 和 Location 来获取,但是,最终我怎么也获取不到经纬度,debug才发现最终的 Locatio ...
- android 经纬度方向,Android获取经纬度、计算距离、方位角
最近在Android上作GPS的东西,获取经纬度.计算距离.方位角,感受在搞GIS样.固然,玩笑了,玩玩而已,稍微总结一下.html 经度指示南北方向,纵向.android 纬度指示东西方向,横向.g ...
- vue项目接入高德地图点击地图获取经纬度及省市区
准备工作,可以先看官方的介绍,JSAPI结合Vue使用,这个不需要在main.js中引入 index.html中 //如果只需要获取经纬度可以跳过这步,经纬度逆解析为详细地址时需要配置这个 <s ...
- Android 获取经纬度。2018年写
本博客内容 获取当前经纬度信息,显示到textView里 具体代码 1. 添加权限 AndroidManifest.xml <uses-permission android:name=" ...
- android 获取经纬度 有负值吗,获取纬度和经度的负值
我想在我的应用程序中得到经度和纬度的值,我已经做到了,但问题是我用值得到了负号.虽然值是正确的,但不知道为什么用值得到负号. java类代码: package com.vshine.neuron.te ...
- Android 获取地理位置信息 封装好了 直接用
前言:花了一个早上研究了以下android获取经纬度,然后网上的参考资料都是杂七杂八,基本上都是过去几年的,现在我用 android6.0参照别人的结果发生好多错误,我的内心几乎是崩溃的.后来,不断百 ...
- 安卓(android)使用GPS,获取经纬度
android获取经纬度,有这个两个类需要用: 1.LocationManager位置管理器 2.Location位置类 第一步:获取LocationManager实例 locationManager ...
- js百度地图获取当前定位经纬度及省市区
首先需要引入百度地图api 和jq <script type="text/javascript" src="https://api.map.baidu.com/ap ...
最新文章
- 期末复习、化学反应工程科目(第八、九章)
- maven2——设置镜像篇
- Union与Union All的区别
- 20 FI配置-财务会计-定义税务科目
- Oracle放大招:MySQL 即将支持 Hash Join
- LeetCode Length of Longest Fibonacci Subsequence
- [剑指Offer]9.用两个栈实现队列
- Rust: Integers: Recreation One
- 【已解决】map container is already initialized——页面切换瓦片图不出来的问题
- 任正非对话卡普兰:5G是一个数据通道,未来最大的产业是人工智能
- 祥云发卡网站源码带详细图文搭建教程
- Excel中插入图表后在设计选项卡无法选择样式解决办法
- 最全的PHP开发Android应用程序
- C语言利用顺序表求两个集合的差集
- 使用hutool工具导出Excel标题自定义顺序
- 【复变函数与积分变换】05. 留数
- irqbalance机制分析
- 【maven本地打包脚本】Git/Svn代码更新+maven打包流水线
- 小陈学JS 数组
- 【CSDN竞赛第5期】编程竞赛总结