Android学习——百度地图开发定位与显示Demo
百度地图给我们提供了很丰富的API供我们进行二次开发。百度地图的SDK与定位SDK在今年6月份进行了更新。
地图更新为3.0,定位更新为4.2。百度说:这次更新对接口有了较大部分的调整,与之前版本号不兼容。
本篇博文基于以上最新版本号的API提供一个小样例:获取自己当前的经纬度坐标,而且显示在地图上。这里仅仅给出核心代码。其它KEY的引入。地图控件的加入,权限的声明。定位服务的声明可在百度地图API官网(http://developer.baidu.com/map/sdkandev-download.htm)进行查看,稍候会附上完整样例的下载链接。
代码中的凝视已经比較具体了。这里就不做说明,參考官网非常easy理解。
- package org.zsl.android.map;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import com.baidu.location.BDLocation;
- import com.baidu.location.BDLocationListener;
- import com.baidu.location.LocationClient;
- import com.baidu.location.LocationClientOption;
- import com.baidu.mapapi.SDKInitializer;
- import com.baidu.mapapi.map.BaiduMap;
- import com.baidu.mapapi.map.BitmapDescriptor;
- import com.baidu.mapapi.map.MapStatusUpdate;
- import com.baidu.mapapi.map.MapStatusUpdateFactory;
- import com.baidu.mapapi.map.MapView;
- import com.baidu.mapapi.map.MyLocationData;
- import com.baidu.mapapi.model.LatLng;
- public class MainActivity extends Activity {
- public MapView mapView = null;
- public BaiduMap baiduMap = null;
- // 定位相关声明
- public LocationClient locationClient = null;
- //自己定义图标
- BitmapDescriptor mCurrentMarker = null;
- boolean isFirstLoc = true;// 是否首次定位
- public BDLocationListener myListener = new BDLocationListener() {
- @Override
- public void onReceiveLocation(BDLocation location) {
- // map view 销毁后不在处理新接收的位置
- if (location == null || mapView == null)
- return;
- MyLocationData locData = new MyLocationData.Builder()
- .accuracy(location.getRadius())
- // 此处设置开发人员获取到的方向信息。顺时针0-360
- .direction(100).latitude(location.getLatitude())
- .longitude(location.getLongitude()).build();
- baiduMap.setMyLocationData(locData); //设置定位数据
- if (isFirstLoc) {
- isFirstLoc = false;
- LatLng ll = new LatLng(location.getLatitude(),
- location.getLongitude());
- MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16); //设置地图中心点以及缩放级别
- // MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
- baiduMap.animateMapStatus(u);
- }
- }
- };
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // 在使用SDK各组件之前初始化context信息。传入ApplicationContext
- // 注意该方法要再setContentView方法之前实现
- SDKInitializer.initialize(getApplicationContext());
- setContentView(R.layout.main_activity);
- mapView = (MapView) this.findViewById(R.id.mapView); // 获取地图控件引用
- baiduMap = mapView.getMap();
- //开启定位图层
- baiduMap.setMyLocationEnabled(true);
- locationClient = new LocationClient(getApplicationContext()); // 实例化LocationClient类
- locationClient.registerLocationListener(myListener); // 注冊监听函数
- this.setLocationOption(); //设置定位參数
- locationClient.start(); // 開始定位
- // baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); // 设置为一般地图
- // baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); //设置为卫星地图
- // baiduMap.setTrafficEnabled(true); //开启交通图
- }
- // 三个状态实现地图生命周期管理
- @Override
- protected void onDestroy() {
- //退出时销毁定位
- locationClient.stop();
- baiduMap.setMyLocationEnabled(false);
- // TODO Auto-generated method stub
- super.onDestroy();
- mapView.onDestroy();
- mapView = null;
- }
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- mapView.onResume();
- }
- @Override
- protected void onPause() {
- // TODO Auto-generated method stub
- super.onPause();
- mapView.onPause();
- }
- /**
- * 设置定位參数
- */
- private void setLocationOption() {
- LocationClientOption option = new LocationClientOption();
- option.setOpenGps(true); // 打开GPS
- option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);// 设置定位模式
- option.setCoorType("bd09ll"); // 返回的定位结果是百度经纬度,默认值gcj02
- option.setScanSpan(5000); // 设置发起定位请求的间隔时间为5000ms
- option.setIsNeedAddress(true); // 返回的定位结果包括地址信息
- option.setNeedDeviceDirect(true); // 返回的定位结果包括手机机头的方向
- locationClient.setLocOption(option);
- }
- }
完整源代码下载地址:http://download.csdn.net/detail/u012909091/7601647
(本文地址:http://blog.csdn.net/zhshulin/article/details/37495575)
Android学习——百度地图开发定位与显示Demo的更多相关文章
- Android studio 百度地图开发(2)地图定位
Android studio 百度地图开发(2)地图定位 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...
- C#的百度地图开发(四)前端显示与定位
原文:C#的百度地图开发(四)前端显示与定位 有了这些定位信息,那要如何在前端的页面上显示出来呢?这需要用到百度地图的JavaScript的API.下面是示例代码. 前端代码 <%@ Page ...
- Android studio 百度地图开发(3)地图导航
Android studio 百度地图开发(3)地图导航 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...
- Xamarin.Android 使用百度地图获取定位信息
最近做一个项目,web端使用百度地图,PDA使用手持机自带的GPS定位系统获取经纬度,然后再百度地图上显示该经纬度会有一定距离的差异,这里就像可乐的瓶子拧上雪碧的盖子,能拧的上却不美观.所以为了数据的 ...
- android的百度地图开发(一)
1,注册百度开发者账号 2,申请key ,注意开发版SH和发布版的SH 获取开发版SHA1: 输入命令:keytool -list -v -keystore debug.keystore,回车输入 ...
- android的百度地图开发(二) 定位
参考:http://blog.csdn.net/mr_wzc/article/details/51590485 第一步,初始化LocationClient类 //获取地图控件引用 mMapView = ...
- Android下百度地图开发(一):基础地图展示
最终效果如: 这个需要详细说下,准备工作较为繁琐. 第一步:去百度申请一个开发者账号,新建一个android应用,会让你输入开发者SHA1,目前我只拿到开发版SHA1,发布版那里也填的是这个. 获取方 ...
- [android] 百度地图开发 (两).所在地的城市定位和城市POI搜索
一个. 百度地图城市位置和POI搜索知识 上一篇文章"百度地图开发(一)"中讲述了怎样申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述怎样定位城市位置.定 ...
- android 基于百度地图api开发定位以及获取详细地址
一:百度地图开发必须要到百度开发平台android开发api下载相应的库,已经申请百度地图开发key. 二:新建项目baidumaplocation.设计main.xml文件这里注意的是MapView ...
随机推荐
- ExtJs006类别名、备用名
Ext.onReady(function () { //Ext.define 其他配置项 //别名.备用名 Ext.define("User", { config: { name: ...
- mvc模式jsp+servel+jdbc oracle基本增删改查demo
mvc模式jsp+servel+jdbc oracle基本增删改查demo 下载地址
- Session累计用户数据列表
OrderForm.html <body> <center> <h1 ><font size="20">Order Items& ...
- 删除链表的中间节点和a/b处节点
[说明]: 本文是左程云老师所著的<程序员面试代码指南>第二章中“删除链表的中间节点和a/b处节点”这一题目的C++复现. 本文只包含问题描述.C++代码的实现以及简单的思路,不包含解析说 ...
- Symfony框架系列----常用命令
一.常用命令 从Entity操作数据库: app/console doctrine:database:create # 创建数据库 app/console doctrine:schema:update ...
- 设置windows密码只存在NTLM-Hash下
修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 下添加名为"NoLMHash"的DWORD值,并设置为1 ...
- PCIE卡槽还能这样用!
前几天去电脑城装了台i5的主机,当时就发现主板上只有2个PCIex2的槽.但奇怪的是2个还长的不一样,一个屁股后面是开口的:) 问装机的小伙子,他也不懂,而且就这电脑操作水平都跟哥差远了,让他给我硬盘 ...
- Sublime Text2
Ctrl+L选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+Shift+K 删除整行 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 Ctrl+J 合并行(已 ...
- HDU2577:How to Type(DP)
Problem Description Pirates have finished developing the typing software. He called Cathy to test hi ...
- HDU 1240 Asteroids!
三维广搜 #include <cstdio> #include <iostream> #include <cstring> #include <queue&g ...