使用百度地图的API其实在代码上并不是特别困难,参考一下官网开发指南或者技术书籍都比较好理解,主要的比较麻烦的地方是出在jar,so文件的导入与LocationManager的使用,本篇主要是给一个代码的参考,有读者在其他方面遇到困难的可以参考笔者的其他几篇博客。

jar与so:

解决百度地图找不到SDKInitializer,无法解析的问题

http://blog.csdn.net/double2hao/article/details/49882693

Android Studio百度地图入门(导入jar与so文件)

http://blog.csdn.net/double2hao/article/details/49862435

Android Studio查看SHA1和MD5(附带keystore创建)

http://blog.csdn.net/double2hao/article/details/49861247

LocationManager:

android LocationManager的简单使用(获取经纬度信息到textview显示)

http://blog.csdn.net/double2hao/article/details/49846953

还是先上一下效果:

MainActivity:

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;import java.util.List;public class MainActivity extends Activity {private MapView mapView;private BaiduMap baiduMap;private LocationManager locationManager;private  String provider;private boolean isFirstLocate =true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);mapView = (MapView) findViewById(R.id.map_view);baiduMap=mapView.getMap();//设置位置提供器setLovationManager();//将显示位置的功能开启baiduMap.setMyLocationEnabled(true);}private void setLovationManager() {locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);//获取所有可用的位置提供器List<String> providerList=locationManager.getProviders(true);if(providerList.contains(LocationManager.GPS_PROVIDER)){provider=LocationManager.GPS_PROVIDER;}else if(providerList.contains(LocationManager.NETWORK_PROVIDER)){provider=LocationManager.NETWORK_PROVIDER;}else {//当前没有可用的位置提供器时,弹出Toast提示Toast.makeText(this,"没有可用的位置提供器",Toast.LENGTH_SHORT).show();return;}Location location=locationManager.getLastKnownLocation(provider);if(location!=null){navigateTo(location);}locationManager.requestLocationUpdates(provider,5000,5,locationListener);}private void navigateTo(Location location) {//如果是第一次创建,就获取位置信息并且将地图移到当前位置//为防止地图被反复移动,所以就只在第一次创建时执行if(isFirstLocate){//LatLng对象主要用来存放经纬度//zoomTo是用来设置百度地图的缩放级别,范围为3~19,数值越大越精确LatLng ll=new LatLng(location.getLatitude(),location.getLongitude());MapStatusUpdate update= MapStatusUpdateFactory.newLatLng(ll);baiduMap.animateMapStatus(update);update=MapStatusUpdateFactory.zoomTo(16f);baiduMap.animateMapStatus(update);isFirstLocate=false;}//封装设备当前位置并且显示在地图上//由于设备在地图上显示的位置会根据我们当前位置而改变,所以写到if外面MyLocationData.Builder locationBuilder=new MyLocationData.Builder();locationBuilder.latitude(location.getLatitude());locationBuilder.longitude(location.getLongitude());MyLocationData locationData=locationBuilder.build();baiduMap.setMyLocationData(locationData);}LocationListener locationListener =new LocationListener() {@Overridepublic void onLocationChanged(Location location) {if(locationManager!=null)navigateTo(location);}@Overridepublic void onStatusChanged(String s, int i, Bundle bundle) {}@Overridepublic void onProviderEnabled(String s) {}@Overridepublic void onProviderDisabled(String s) {}};@Overrideprotected void onDestroy() {super.onDestroy();//最后要销毁mapView//关闭程序时将监听器移除//关闭可以显示位置的功能mapView.onDestroy();if(locationManager!=null){locationManager.removeUpdates(locationListener);}baiduMap.setMyLocationEnabled(false);}@Overrideprotected void onPause() {super.onPause();mapView.onPause();}@Overrideprotected void onResume() {super.onResume();mapView.onResume();}
}

activity_main:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"><com.baidu.mapapi.map.MapViewandroid:id="@+id/map_view"android:layout_width="match_parent"android:layout_height="match_parent"android:clickable="true"></com.baidu.mapapi.map.MapView></LinearLayout>

Androidmanifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.baidumaptest2"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><meta-dataandroid:name="com.baidu.lbsapi.API_KEY"android:value="lPdICf3mOjPpwXsUzv8Omgec"/><activityandroid:name=".MainActivity"android:label="@string/app_name"android:theme="@style/AppTheme.NoActionBar"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application>//以下为权限设置<uses-permission android:name="android.permission.GET_ACCOUNTS" /><uses-permission android:name="android.permission.USE_CREDENTIALS" /><uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /><uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /><permission android:name="android.permission.BAIDU_LOCATION_SERVICE" ></permission><uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" ></uses-permission><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" ></uses-permission><uses-permission android:name="android.permission.INTERNET" ></uses-permission><uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" ></uses-permission><!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> --><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission><uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.WAKE_LOCK" ></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_GPS" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.CALL_PHONE" /><uses-permission android:name="android.permission.READ_SMS" /><uses-permission android:name="android.permission.SEND_SMS" /><!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? --><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.CAMERA" ></uses-permission><uses-permission android:name="android.permission.RECORD_AUDIO" ></uses-permission><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" ></uses-permission><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.BROADCAST_STICKY" /><uses-permission android:name="android.permission.WRITE_SETTINGS" /><!-- 来电消音 --><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" ></uses-permission><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
</manifest>

使用百度地图API,定位并显示自己的位置相关推荐

  1. 百度IP定位和百度地图API定位

    百度IP定位和百度地图API定位 在这里根据你所获得ip,来确定这个ip的大体位置 [java] view plaincopy <span style="font-size:14px; ...

  2. 百度地图api定位的使用详解和返回错误码61的解决方案

    返回错误码61的解决方案我记不住了,我是看了官方demo改的,不过可以看下面的配置设置,应该可以解决,如果不能解决,可以评论或联系我 百度地图api定位的使用详解 1.获取密钥 官网 2.下载SDK, ...

  3. 基于Android studio的使用百度地图API定位到大西洋几内亚湾(一片蓝图)问题

    问题:点进去发现跳转一下就定位到几内亚湾 解决: 首先不要使用模拟器运行,会出很多问题,一定要用真机运行,另外这里不提供定位的代码实现,具体定位自己需要参考官方文档,这里提供一个链接点击此处 解决办法 ...

  4. 解决百度地图API无法正常显示地图

    一.问题描述 引用了百度地图api,但是无法显示地图,报错截图如下: 二.解决方法 需要去百度地图api-控制台中,把对应ak的Referer白名单设置为通用(*)

  5. 在vue中使用百度地图API:区域显示3D棱柱、地点标注、信息提示

    文章目录 1.在vue中引入百度地图的script 2.生成想要的地图样式 3.生成地图 4.创建3d棱柱 5.设置标记点和提示框 6.代码总结 1.在vue中引入百度地图的script 在publi ...

  6. python调用百度地图api定位_python 调用百度地图地点检索webAPI

    百度地图提供了开放的API,使用方法 右上角登陆账号 -> 点击"获取密钥" -> "创建应用" -> 填写应用名称&白名单IP -& ...

  7. python调用百度地图api定位_逆地理编码 rgc 反geo检索 | 百度地图API SDK

    使用方法 如不访问境外POI,走以下服务使用流程 编码说明 API请求中需要用到中文或一些特殊字符的参数,如query.region等,为了避免提交到后台乱码,需要对这几个参数值进行编码处理,转换成U ...

  8. 百度地图api(javascript)只显示某一行政区域的地图,其他周边地区的都不显示

    var map = new BMap.Map("map_container");     var cityName = '浙江省';     map.centerAndZoom(c ...

  9. php调用百度地图定位,php用百度地图API进行IP定位和GPS定位

    /** * 根据地理坐标获取国家.省份.城市,及周边数据类(利用百度Geocoding API实现) * 百度密钥获取方法:http://lbsyun.baidu.com/apiconsole/key ...

  10. Android 百度地图API实现实时定位

    首先需要注册百度地图的开发者账号,选择个人开发者就可以.百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com) 然后获取AK这个在网上都有可以自己查看.下载.配置sdk可以 ...

最新文章

  1. 深度学习上的又一重点发现——利用MSCNN实现人群密度监测
  2. java接口常用_java的常用接口
  3. 手动实现SPring中的AOP(2)
  4. Spring MVC控制器JUnit测试
  5. css如何调整红心样式_在JavaScript应用程序中包含CSS的多种方法「渡一」
  6. 运用反射时报错java.lang.NoSuchMethodException,以解决,记录一下
  7. iPhone 12将首次加入屏下指纹?都是为它铺路?
  8. Kotlin — 使用IDEA运行第一个Kotlin程序,打印“Hello World”!
  9. c# 调用服务返回结果模板化
  10. MTK开发入门基础教程
  11. 解放军--女“黑客”
  12. Google Chrome商店开发者认证支付$5【图解认证支付成功】
  13. 校园外卖点餐系统——Day04【菜品管理业务开发】
  14. 各大厂800道Java后端经典面试题合集
  15. 生产计划管理软件功能是什么?对生产管理有何好处?
  16. 计算机cds,CDS
  17. DBeaver显示Unknown database错误
  18. MATLAB 学习心得(3) 定积分和双重积分,三重积分的求法
  19. 单片机毕业设计怎么做
  20. VS2017写C语言代码出错,vs2017 安装c++ 环境之后不能运行代码-解决

热门文章

  1. 解绑ip linux,H3C 批量解绑 IP 地址绑定
  2. #书籍《量子力学》读后感
  3. Scipy_常用统计函数
  4. 【JavaSE系列】 第九话 —— 多态那些事儿
  5. Struts的vistor校验器
  6. 数据结构 | 十大排序超硬核八万字详解【附动图演示、算法复杂度性能分析】
  7. apple tv设置_如何设置Apple TV以自动打开电视或媒体中心
  8. PDF转word之后的结果事图片格式,如何改成.doc或.docx格式
  9. [Leetcode] 625. Minimum Factorization 解题报告
  10. 【IDEA设置和 操作遇到的 】会持续更新