所有文档
开发指南
百度地图android定位sdk自v7.3版本起,面向广大开发者提供了辅助h5定位的能力。
辅助h5定位指的是开发者在自己的app中使用百度地图javascript api实现web页面开发时, 可调用集成在app中的百度地图定位sdk来获取更精准的位置信息。
在使用定位sdk进行具体开发工作之前,需, 并对开发工程进行环境配置工作。详细介绍请参考项目创建部分的说明。 此外, google在android 6.0中引入了动态权限获取机制,开发者在使用定位sdk之前, 请详细了解关于android 6.0系统开发须知。
请在主线程中声明locationclient类对象,该对象初始化需传入context类型参数。 推荐使用getapplicationconext()方法获取全进程有效的context。
核心代码段如下:
mlocationclient = new locationclient(getapplicationcontext());//声明locationclient类
核心代码如下:
contentwebview =(webview)findviewbyid(r.id.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中的alertpublic boolean onjsalert(webview view, string url, string message,final jsresult result){return true;}// 处理javascript中的confirmpublic boolean onjsconfirm(webview view, string url,string message, final jsresult result){return true;}// 处理定位权限请求@overridepublic 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);}// 设置应用程序的标题titlepublic voidonreceivedtitle(webview view, string title){super.onreceivedtitle(view, title);}});contentwebview.loadurl("file:///android_asset/web.html");
调用如下方法,开启辅助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);}});
请参考百度地图javascript api对应章节的介绍。
完成辅助h5定位功能之后,可调用如下代码关闭sdk端辅助h5定位功能。
mlocationclient.disableassistantlocation();
上一篇
下一篇
本篇文章对您是否有帮助?