android地图sdk | 百度地图api sdk-凯发k8官方旗舰厅

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
显示定位
下载开发文档
坐标系说明

android定位sdk产品,支持全球定位,能够精准的获取经纬度信息。根据开发者的设置,在国内获得的坐标系类型可以是:国测局坐标、百度墨卡托坐标 和 百度经纬度坐标。在海外地区,只能获得wgs84坐标。请开发者在使用过程中注意坐标选择。定位sdk默认输出gcj02坐标,地图sdk默认输出bd09ll坐标。

显示定位

通过如下几步您便可以在自己的地图中展示当前所在位置的定位点。

1. 确保您的开发包中包含基本定位功能,该选项在您下载开发包时默认不会被选中,点击下载开发包
2. 配置androidmanifest.xml文件

1.加入如下权限使用声明

<uses-permissionandroid:name="android.permission.access_coarse_location"/>
<uses-permissionandroid:name="android.permission.access_fine_location"/>

2.在application标签中声明定位的service组件

<serviceandroid:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote"/>
3. 开启地图的定位图层
mbaidumap.setmylocationenabled(true);
4. 构造地图数据

我们通过继承抽象类bdabstractlistener并重写其onreceievelocation方法来获取定位数据,并将其传给mapview。

publicclassmylocationlistenerextendsbdabstractlocationlistener{
@override
publicvoidonreceivelocation(bdlocationlocation){
//mapview 销毁后不在处理新接收的位置
if(location==null|| mmapview ==null){
return;
}
mylocationdata locdata =newmylocationdata.builder()
.accuracy(location.getradius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(location.getdirection()).latitude(location.getlatitude())
.longitude(location.getlongitude()).build();
mbaidumap.setmylocationdata(locdata);
}
}
5. 通过locationclient发起定位
//定位初始化
mlocationclient =newlocationclient(this);
//通过locationclientoption设置locationclient相关参数
locationclientoption option =newlocationclientoption();
option.setopengps(true);// 打开gps
option.setcoortype("bd09ll");// 设置坐标类型
option.setscanspan(1000);
//设置locationclientoption
mlocationclient.setlocoption(option);
//注册locationlistener监听器
mylocationlistener mylocationlistener =newmylocationlistener();
mlocationclient.registerlocationlistener(mylocationlistener);
//开启地图定位图层
mlocationclient.start();
6. 正确管理各部分的生命周期
@override
protectedvoidonresume(){
mmapview.onresume();
super.onresume();
}
@override
protectedvoidonpause(){
mmapview.onpause();
super.onpause();
}
@override
protectedvoidondestroy(){
mlocationclient.stop();
mbaidumap.setmylocationenabled(false);
mmapview.ondestroy();
mmapview =null;
super.ondestroy();
}
7. 完成以上工作,即可在您的地图应用中显示当前位置的蓝点,如下图:

上图为18级缩放下的显示效果。

自定义内容

通过mylocationconfiguration类来构造包括定位的属性,定位模式、是否开启方向、设置自定义定位图标、精度圈填充颜色以及精度圈边框颜色5个属性。
开发者可以利用baidumap中的setmaptype()方法来设置地图类型,下面做简单展示。

mylocationconfiguration(locationmode mode,
boolean enabledirection,
bitmapdescriptor custommarker,
int accuracycirclefillcolor,
int accuracycirclestrokecolor)

上述代码中五个参数详细介绍如下:

定位模式

地图sdk支持三种定位模式:normal(普通态), following(跟随态),compass(罗盘态)

mcurrentmode =locationmode.following;//定位跟随态
mcurrentmode =locationmode.normal;//默认为 locationmode.normal 普通态
mcurrentmode =locationmode.compass;//定位罗盘态

自定义定位图标

支持自定义定位图标样式,替换定位icon

mcurrentmarker =bitmapdescriptorfactory.fromresource(r.drawable.icon_geo);

自定义精度圈填充颜色

//自定义精度圈填充颜色
accuracycirclefillcolor =0xaaffff88;

自定义精度圈边框颜色

//自定义精度圈边框颜色
accuracycirclestrokecolor =0xaa00ff00;

在定义了以上属性之后,通过如下方法来设置生效:

//自定义精度圈边框颜色
mbaidumap.setmylocationconfiguration(mlocationconfiguration)

显示效果如图:

自定义精度圈边框颜色

上图为21级缩放下的显示效果。
另外有两个属性不可以通过上述方法设置,说明如下:

定位精度圈大小

定位精度圈大小 ,是根据当前定位精度自动控制的,无法手动控制大小。精度圈越小,代表当前定位精度越高;反之圈越大,代表当前定位精度越低。

定位指针方向

定位指针朝向,是通过获取手机系统陀螺仪数据,控制定位指针的方向,需要开发者自己实现,并不在地图实现范畴。

定位的频次自定义

开发者可以自行设置获取定位的时间间隔,详细的设置方法可以参考定位sdk

自定义图标

自v7.5.7版本起,定位图标支持自定义功能。分别支持对定位中心图片和定位箭头的自定义,同时中心图片新增对gif图的支持 对应新增接口如下:

/**
* 构造者模式
* 构造自定义图标
* @param locationmode
* 定位图层显示方式, 默认为 locationmode.normal 普通态
* @param enablearrow
* 定位图标样式,true代表箭头模式,false代表整体模式
*/
publicbuilder(locationmode locationmode,boolean enablearrow)

自定义定位图标

所需配置代码如下:

/**
* 设置自定义中心图片
* @param custommarker 中心图片
* 所有传入的图片均会以图片的短边为直径裁剪成中心圆
* @return
*/
publicbuildersetcustommarker(bitmapdescriptor custommarker)
/**
* 设置自定义中心图片的大小 0.2~3倍,默认为直径30的圆形图
* 同时适用gif图
* @param markersize 倍数
* @return
*/
publicbuildersetmarkersize(float markersize)
// 自定义定位箭头
publicbuildersetarrow(bitmapdescriptor arrow)
/**
* 设置箭头图标的大小 0.2~3倍 默认原始图片大小
* @param arrowsize 倍数
* @return
*/
publicbuildersetarrowsize(float arrowsize)
/**
* 设置中心图片是否可以做呼吸动画
* 非箭头模式下false
* @param isneedanimation
* @return
*/
publicbuildersetanimation(boolean isneedanimation)

效果如下:
整体模式:

箭头模式(中心图片附带呼吸效果):

自定义gif定位图标

所需配置代码如下:

/**
* 设置自定义中心gif图
* @param gifpath gif图片的路径 内部处理gif图
* 所有传入的图片均会以图片的短边为直径裁剪成中心圆
* @return
*/
publicbuildersetgifmarker(string gifpath)

效果如下:
整体模式:

箭头模式(中心图片带呼吸效果):

上一篇

切换地图类型

下一篇

室内地图

本篇文章对您是否有帮助?

网站地图