百度未授权使用地图API解决方法

今天用MVC写项目,需要用到百度地图,导入时出现了一些问题,调试了半天,看了许多人的文章,最后终于搞好了,真的无语,一个小功能花了这么久时间,记录下错误日志。


将地图代码导入后(有个百度地图生成器,有需要的可以去看下:创建地图-百度地图生成器),运行既然是空白的:

就特别莫名其妙,看了下页面源码,发现BMap这个类没有被定义

就觉得不应该,去网上查了一些方法都没用。然后想到既然找不到这个方法就应该是导入百度api的js文件路径问题,果然,我写的是:

    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=XavSGctuVGOQpe3Hn5pIh0TqMF47u1Nf"></script>

注意看src路径中的网址是http协议,但我这个项目是在https下运行的,https下是不能用http的,具体原因可以看这个人博客,讲的蛮清晰的:在https中引入http资源所导致的问题_weixin_30883777的博客-CSDN博客

接着给http加上s,我以为就可以运行成功,但出现了这个对话框:

 提示未授权使用地图API,重新申请了一下,结果还是这样,当时就不知所措了,仿佛失去了动力,被折磨了,在网上查阅半个小时后看到一篇文章是将白名单设置为“ * ”,试了一下果然可以成功。当然我是自己的项目,访问范围比较宽,当真正的网站项目,还是给自己公司的域名好,不然不安全。

 


以上就是我遇到的问题,不知道有没有人和我一样,我举例出我找到的一些可能对你们有效的方法,遇到这个问题可以一个一个试,总有一个可以解决的:

  1.  申请的时候类别选择“浏览器端”,其他的类型不支持,同时启动服务要全选,取消勾选JavaScript API时会报错。
  2. 白名单设置为“  * ”
  3. 可能是    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=XavSGctuVGOQpe3Hn5pIh0TqMF47u1Nf"></script>  的版本问题,调成申请时对应的版本
  4. 看百度地图的demo里,路径是没有http:的,调到的时候需要加上。

差不多就这样了,有问题私信或留言哦!

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
获取设备经纬度需要使用HTML5的Geolocation API,下面是一个示例代码: ```html <!DOCTYPE html> <html> <head> <title>获取设备经纬度</title> <meta charset="utf-8"> <style> #map { height: 400px; width: 100%; } </style> </head> <body> <div id="map"></div> <script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> <script> var map = new BMap.Map("map"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition, showError); } else { alert("Geolocation is not supported by this browser."); } } function showPosition(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; var point = new BMap.Point(longitude, latitude); map.centerAndZoom(point, 15); var marker = new BMap.Marker(point); map.addOverlay(marker); } function showError(error) { switch (error.code) { case error.PERMISSION_DENIED: alert("User denied the request for Geolocation."); break; case error.POSITION_UNAVAILABLE: alert("Location information is unavailable."); break; case error.TIMEOUT: alert("The request to get user location timed out."); break; case error.UNKNOWN_ERROR: alert("An unknown error occurred."); break; } } getLocation(); </script> </body> </html> ``` 在上面的代码中,我们使用百度地图API来创建一个地图,并且调用了HTML5的Geolocation API来获取设备的经纬度,然后在地图上显示出来。 需要注意的是,获取设备的经纬度需要用户授权,如果用户拒绝授权,则无法获取经纬度信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙子哈哈哈~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值