hoyong

导航

Android 开发调用百度地图api开发----解决地图显示不出来(转)

       关于LBS定位服务时,调用百度地图api进行android位置服务开发时,遇到了以下两个问题,我相信这两个问题也是许多人在开发百度地图时会遇到的,下面我将就我遇到的这两个问题进行描述并分享自己的解决方法。

第一:在调用BDLocation的getLongitude()、getLatitude()方法获取当前位置的经纬度,当然这些是在所有权限都同意后。然而,本人调用后,却显示不出当前位置的经纬度,网络定位方式也无法显示。当把该应用小化到后台后,重新打开,经纬度都显示4.9E-324,效果图如下图所示。

在百度了4.9E-324后,看到有人回答只是当前所在位置的网络状态不好,自己当时也是认同这种说法,继而继续使用GPS进行定位,然而用了GPS定位后,画面上白茫茫一片,而通知栏上有显示GPS正在搜寻位置,效果图如下所示。

后来通过在网上找方法,终于发现原理自己没能成功调用百度api,出错原因在于自己当初在申请百度地图key时的包名与创建项目的包名不一致。比如我在创建项目时,填入的包名是com.example.lbstest,然而在打开project时我的包名变成了lbstest.example.com.lbstest,自己当初在申请百度key时填入的是lbstest.example.com.lbstest,而在创建项目时填入的包名为com.example.lbstest,所以这会造成百度地图api无法成功导入。在修改包名后,成功调用了百度api。

上图LBSTest3中是成功导入后,LBSTest是导入不成功的,可以明显看到,导入成功后,每个子项的标题都会变成金黄色。

成功解决这个问题后,本人使用百度地图提供的自定义控件MAPView让地图显示在屏幕上,可是打开后,屏幕上只有一些小格子,根本没有说好的地图。如下图所示

后来了解到是证书有问题需要重新申请,可申请完后依旧不能显示。后来发现,其实是你创建的项目名与包名必须与你在百度地图key上申请的一致。如同一个名称的项目LBSTest在AS上如重复创建三次,此时你去key申请的项目名应该填入LBSTest3。当解决完以上这些问题时,地图成功显示出来,如下图所示

注意:本人一开始错以为在创建项目时填入的Company Domain就是包名,从而造成错误的产生,其实Company Domain表示公司域名,并不是所谓包名称,包名在公司域名的下面。

posted on 2019-11-23 16:44  hoyong  阅读(830)  评论(0编辑  收藏  举报