在百度地图api开放平台,把demo下载

把第三方的包粘贴到自己项目的libs包下(android-support-v4.jar这个包不要粘)

在百度开发平台创建项目,输入项目名,

从cmd中获取sha1值——cmd进入c盘,用户中的.android,输入keytool -list -v -keystore (此处粘贴c盘用户中.android文件夹下的debug-keystore)

然后从自己的清单文件中获取项目的包名(如果包名在开发过程中有过改动,则使用更改以前的包名)

创建完项目,将产生的AK值放到

<application>  
               <meta-data  
                        android:name="com.baidu.lbsapi.API_KEY"  
                        android:value="开发者 key" />  
      </application>(清单文件中,可将meta-daadata直接放入已经有的application中

____________________地图的显示__________________________

然后按照百度地图android地图SDK——开发指南——hello baidumap往自己的项目里粘贴就可以了(注:android6.0及以上版本需要在java类中配置权限)

____________________地图的定位__________________________

进入百度地图Api的android定位SDK——开发指南——配置环境找到配置build gradle的
sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
}
将这串代码配置到build gradle中
如:
buildTypes {
             release {
                  minifyEnabled false
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
             }
     }
     sourceSets {
             main {
                  jniLibs.srcDirs = ['libs']
             }
     }
}
然后点击右上角的sync now进行同步
再到清单文件中配置定位服务:
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote">
</service>
权限:(注:android6.0及以上版本需要在java类中配置权限)
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- 用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡读取权限,用户写入离线定位数据-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
布局
<com.baidu.mapapi.map.MapView
    android:id="@+id/bmapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true" />
以下是显示地图和定位以及获取经纬度的所有代码
public class MainActivity extends AppCompatActivity {private MapView mMapView;private Button jing,wei,difang;LocationClient mLocationClient;public BDLocationListener myListener = new MyLocationListener();BaiduMap mBaiduMap;boolean isFirstLoc = true;@Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);mMapView = (MapView) findViewById(R.id.bmapView);jing= (Button) findViewById(R.id.jing);wei= (Button) findViewById(R.id.wei);difang= (Button) findViewById(R.id.di);mBaiduMap = mMapView.getMap();// 开启定位图层
        mBaiduMap.setMyLocationEnabled(true);mLocationClient = new LocationClient(this);//声明LocationClient类
        mLocationClient.registerLocationListener(myListener);//注册监听函数

        LocationClientOption option = new LocationClientOption();option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系
        int span=10000;option.setCoorType("bd09ll"); // 设置坐标类型
        option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
        option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要
        option.setOpenGps(true);//可选,默认false,设置是否使用gps
        option.setLocationNotify(true);//可选,默认false,设置是否当GPS有效时按照1S/1次频率输出GPS结果
        option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类   似于“在北京天安门附近”
        option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
        option.setIgnoreKillProcess(false);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不  杀死
        option.SetIgnoreCacheException(false);//可选,默认false,设置是否收集CRASH信息,默认收集
        option.setEnableSimulateGps(false);//可选,默认false,设置是否需要过滤GPS仿真结果,默认需要
        mLocationClient.setLocOption(option);mLocationClient.start();}public class MyLocationListener implements BDLocationListener {@Override
        public void onReceiveLocation(BDLocation location) {//Receive Location
            StringBuffer sb = new StringBuffer(256);StringBuffer lotitude=new StringBuffer(256);//获得经纬度的变量,直接用StringBuffer接受了StringBuffer longitude=new StringBuffer(256);sb.append("time : ");sb.append(location.getTime());sb.append("\nerror code : ");sb.append(location.getLocType());sb.append("\nlatitude : ");sb.append(location.getLatitude());lotitude.append(location.getLatitude());jing.setText("经度"+lotitude.toString());sb.append("\nlontitude : ");sb.append(location.getLongitude());longitude.append(location.getLongitude());wei.setText("纬度"+longitude.toString());sb.append("\nradius : ");sb.append(location.getRadius());// map view 销毁后不在处理新接收的位置
            if (location == null || mMapView == null) {return;}MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360
                    .direction(100).latitude(location.getLatitude()).longitude(location.getLongitude()).build();// 设置定位数据
            mBaiduMap.setMyLocationData(locData);if (isFirstLoc) {isFirstLoc = false;LatLng ll = new LatLng(location.getLatitude(),location.getLongitude());MapStatus.Builder builder = new MapStatus.Builder();builder.target(ll).zoom(18.0f);mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));}if (location.getLocType() == BDLocation.TypeGpsLocation) {// GPS定位结果
                sb.append("\nspeed : ");sb.append(location.getSpeed());// 单位:公里每小时
                sb.append("\nsatellite : ");sb.append(location.getSatelliteNumber());sb.append("\nheight : ");sb.append(location.getAltitude());// 单位:米
                sb.append("\ndirection : ");sb.append(location.getDirection());// 单位度
                sb.append("\naddr : ");sb.append(location.getAddrStr());sb.append("\ndescribe : ");sb.append("gps定位成功");}sb.append("\nlocationdescribe : ");sb.append(location.getLocationDescribe());// 位置语义化信息
            List<Poi> list = location.getPoiList();// POI数据
            di.append(list.get(1).getName());if (list != null) {sb.append("\npoilist size = : ");for (Poi p : list) {sb.append("\npoi= : ");sb.append(p.getId() + " " + p.getName() + " " + p.getRank());}}Log.i("BaiduLocationApiDem", sb.toString());Toast.makeText(MainActivity.this, "经度:"+lotitude.toString()+"纬度:"+longitude.toString(), Toast.LENGTH_SHORT).show();}}@Override
    protected void onDestroy() {super.onDestroy();//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
        mMapView.onDestroy();}@Override
    protected void onResume() {super.onResume();//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
        mMapView.onResume();}@Override
    protected void onPause() {super.onPause();//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
        mMapView.onPause();}
}
以上就是百度地图的地图显示和定位的简单实现了

百度地图之地图显示和定位,获取定位的经纬度相关推荐

  1. 百度地图API 显示区域边界及地名定位

    百度地图API 显示区域边界及地名定位 这个定位一共用了两个方法组成 一个是定位绘制区域边界线,另一个是地名定位 原理: 当用户输入省.市.县.区这种大地名时,我们要定位用户输入的这个位置,并显示轮廓 ...

  2. 超详细的Android百度地图开发:在APP上定位并显示出来

    超详细的Android百度地图开发:在APP上定位并显示出来 一 写在前面 二 注册百度开发者账户.申请API KEY 三.代码实现 四.问题 五.总结 一 写在前面 由于项目所需,我需要在手机APP ...

  3. 百度地图sdk sha1秘钥获取有种想吐的赶脚

    撸代码坐的腰算背疼还只是弄一个不是项目里边需要的升级版本的so 日 需要sha1 指纹秘钥,还有项目包, 才能用百度地图sdk 这个找sha1  获取废了20分钟, 显示全盘找keytool.exe ...

  4. 跨域请求(使用jsonp实现跨域请求)百度地图api证逆地址解析获取周边信息(pois)

    新手程序员,新手博客,如果那里写的不好,还请大神们补充,指错 最近项目里面需要做一个电子围栏的功能,我这边做的就是需要把商户的地址的经纬度存进数据库,本来这些从百度地图API里面有Demo可以看,但是 ...

  5. vue3调用百度地图标注选择位置并获取经纬度

    vue3调用百度地图标注选择位置并获取经纬度 参考了很多文章,最终结合百度文档各有采取完成地图选取经纬度. 第一步:引入百度地图,在当前需要地图的页面引入就行. const loadMapScript ...

  6. 百度地图总结第三篇之定位(我的位置)

    前言: 使用百度定位SDK获取相应的位置信息,然后利用地图SDK中的接口,您可以在地 在这里提示一下,如果是在一个工程中同时使用定位的SDK和百度地图SDK,可以共同使用一个key,如果新创建工程,那 ...

  7. 百度地图JavaScript API 学习之浏览器定位

    浏览器定位示例 百度地图API官方的所有demo示例--请直戳这里 官方浏览器定位demo示例--请直戳这里 后来发现的问题,这里记录一下: 在使用百度地图JS API时,无意中发现谷歌浏览器的浏览器 ...

  8. 关于百度地图SDK的andriod开发的定位功能实现

    基于Android Studio的汽车定位追踪系统的设计 摘要:随着经济的发展和汽车化时代的到来,人们对于车辆的服务的智能化,便捷化提出了更高的要求.文章主要研究通过软件编写一个汽车定位追踪系统,并利 ...

  9. 百度地图绘制地区的棱柱效果-定位-自定义点-文本标记-信息弹窗

    文章目录 百度地图webgl使用 自定义地图样式 地区镂面棱柱效果 绘制点信息以及信息弹窗 百度地图webgl使用 在项目的index.html中引入 <script type="te ...

最新文章

  1. mysql有多少种日志_MySQL到底有多少种日志类型必须我们记住的!
  2. 一个递归函数的漏洞及优化
  3. 从甲方到乙方,如何做好混沌工程的行业化落地
  4. mybatis-plus自定义mapper报org.apache.ibatis.binding.BindingException: Invalid bound statement(not found)
  5. cent os数据库安装
  6. eval、json.parse()的介绍和使用注意点
  7. python os操作
  8. 控制台文字对战游戏 初始版
  9. ios category 笔记整理(一)
  10. 怎么搞一个ORM出来用用呢???迷茫中
  11. DongLiORM 介绍
  12. Jmeter使用教程
  13. 分析了633个中国城市之后,我们发现五分之二都在流失人口...(附统计图)
  14. 小程序点击图片查看详情
  15. 草食と肉食作者小さな塵
  16. [C#入门] 函数 | 方法
  17. selenium滑动验证
  18. WatchGuard Firebox配置动态口令(OTP)认证
  19. tqdm的使用和例子
  20. decltype 类型指示符

热门文章

  1. 2.2 华为-软件工程师-7.21笔试题
  2. sipp介绍与脚本撰写(一)
  3. Mac 配置教程-开发篇
  4. 应用|5G时代10大应用场景!
  5. html八边形怎么显示,如何用几何画板自定义工具画正八边形
  6. laravel view 教程
  7. 函数指针数组的一些用法
  8. C# 调用打印机 打印 Excel
  9. [笔记分享] [Display] MIPI屏调试及举例
  10. R语言绘制Kaplan-Meier生存曲线