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

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
辅助h5定位
下载开发文档
简介

百度地图android定位sdk自v7.3版本起,面向广大开发者提供了辅助h5定位的能力。
辅助h5定位指的是开发者在自己的app中使用百度地图javascript api实现web页面开发时, 可调用集成在app中的百度地图定位sdk来获取更精准的位置信息。

1. 第一步,准备工作

在使用定位sdk进行具体开发工作之前,需, 并对开发工程进行环境配置工作。详细介绍请参考项目创建部分的说明。 此外, google在android 6.0中引入了动态权限获取机制,开发者在使用定位sdk之前, 请详细了解关于android 6.0系统开发须知。

2. 第二步,初始化locationclient类

请在主线程中声明locationclient类对象,该对象初始化需传入context类型参数。 推荐使用getapplicationconext()方法获取全进程有效的context。
核心代码段如下:

mlocationclient = new locationclient(getapplicationcontext());
//声明locationclient类
3. 第三步,加载webview控件

核心代码如下:

contentwebview =(webview)findviewbyid(r.id.webview);
4. 第四步,设置webview属性

核心代码如下:

contentwebview.setwebviewclient(new webviewclient(){
public voidonpagefinished(webview view, string url){
super.onpagefinished(view, url);
}
public voidonpagestarted(webview view, string url, bitmap favicon){
super.onpagestarted(view, url, favicon);
}
});
contentwebview.setwebchromeclient(new webchromeclient(){
// 处理javascript中的alert
public boolean onjsalert(webview view, string url, string message,
final jsresult result){
return true;
}
// 处理javascript中的confirm
public boolean onjsconfirm(webview view, string url,
string message, final jsresult result){
return true;
}
// 处理定位权限请求
@override
public voidongeolocationpermissionsshowprompt(string origin,
geolocationpermissions.callback callback){
callback.invoke(origin, true, false);
super.ongeolocationpermissionsshowprompt(origin, callback);
}
@override
// 设置网页加载的进度条
public voidonprogresschanged(webview view,int newprogress){
testjslocation.this.getwindow().setfeatureint(
window.feature_progress, newprogress *100);
super.onprogresschanged(view, newprogress);
}
// 设置应用程序的标题title
public voidonreceivedtitle(webview view, string title){
super.onreceivedtitle(view, title);
}
});
contentwebview.loadurl("file:///android_asset/web.html");
5. 第五步,开启辅助定位

调用如下方法,开启辅助h5定位:

mlocationclient.start();
mlocationclient.enableassistantlocation(contentwebview);

同时,在h5页面中使用定位接口,并开启辅助定位。 javascript api端代码参考如下:

var map = new bmap.map("allmap");
var point = new bmap.point(116.331398,39.897445);
map.centerandzoom(point,12);
var geolocation = new bmap.geolocation();
// 开启辅助定位
geolocation.enablesdklocation();
geolocation.getcurrentposition(function(r){
if(this.getstatus()=== bmap_status_success){
var mk = new bmap.marker(r.point);
map.addoverlay(mk);
map.panto(r.point);
}
});
6. 第六步,获取位置信息

请参考百度地图javascript api对应章节的介绍。

7. 第七步,关闭辅助定位

完成辅助h5定位功能之后,可调用如下代码关闭sdk端辅助h5定位功能。

mlocationclient.disableassistantlocation();

上一篇

移动热点判别

下一篇

辅助提升定位精度

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

网站地图