我们在网页版中使用百度地图的时候,可以发现点击一下定位以后会定位到现在自己这里的位置来,并且显示自己的位置大概是什么地方。

但是查阅api的时候,当我们调用定位api的时候却经常做不到这个,虽然返回值里面有街道级别。但是并不是我们想要的大概地址。

这个的原因是因为,我们查阅的是js的api

http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html

我们以为的是,我们进行定位,然后返回一个地址,但是,实际上并不在这里。而是在

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad

web服务的api中。。。

当我们传递一个定位经纬度,然后再返回这个经纬度对应的大致地址。。。

以前的时候使用过高德地图的时候有一个地图组件,可以实现通过一条url就跳转到外部的浏览器来实现地图功能,而这个的也是一个url,所以一开始的时候也会跟人感觉是跳到外面去。但是并不是这样的。

当我们调用这个url的时候,他会给我们返回数据,然后我们可以通过回调函数来获取这个数据。

           // 逆地址解析function _parseAddress(point) {return new Promise((resolve) => {// geoc.getLocation(point, (rs) => {//   resolve(rs.addressComponents)// })$window.renderReverse = function (rs) {resolve(rs.result)document.body.removeChild($script)}const $script = document.createElement('script')$script.src = encodeURI(`https://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=${point.lat},${point.lng}&output=json&pois=1&ak=${bMapAk}`)document.body.appendChild($script)})}

这个上面的代码中,我们通过定位获取到我们当前的百度坐标,传入函数。

随后异步加载script,加载完成后会返回一个json数据,并且调用我们的renderReverse回调函数。而我们这里使用了Promise,把状态设置成resolve,这里的难度其实不大。

但是问题的关键点在于,很多时候我们只会去web js的文档中去找解决方案。

而是百度地图的机制。现在jsonp用的越来越少了,看到这个代码有的时候会不是很懂。同样跟jsonp有关的还有白名单设置。以前的时候我一直不懂为啥要进行白名单设置,或者说这个白名单设置到底是怎么实现。因为我以为,用户在进行定位的时候,其实是像百度发送了一个请求,然后实现的定位。那么referrer永远是当前用户的ip,那么白名单就做不到限制了啊。

这里其实是因为我对这个的理解不对吧。用户进行定位的时候,其实访问的是加载好的js api脚本,而这个脚本的获取,是在服务器传递给用户的之前获取到的。

也就是说,当用户进入这个页面的时候,先向服务器进行请求,这个时候服务器想百度请求jsapi文件,随后把这个文件给用户,这样第一个referrer就永远是服务器的域名与地址,因此别人使用我们的key的时候,是从自己的域名或者ip上发送的请求,就获取不到api了。也就无法实现定位操作。

百度地图中如何获取某个经纬度附近的地址相关推荐

  1. vue百度地图API、获取当前经纬度以及地理位置

    百度API的使用 一.创建MAP实例 var self = thiswindow.map = new BMap.Map(this.$refs.allmap); // 创建Map实例window.geo ...

  2. Java 百度地图 根据名称获取坐标(经纬度)

    申请百度开放平台KEY(ak) 没申请,随便找了一个 参数说明: region:召回城市 city_limit:区域数据召回限制 这两个参数必须配合使用,city_limit为true时,仅召回reg ...

  3. mysql geocode_百度地图Geocoding API获取特定地区或地址的经纬度信息,然后在MySql数据库多表循环遍历更新...

    1.数据库多表循环更新的思想在这个链接上,标题是"MySql多表循环遍历更新", 链接地址http://www.cnblogs.com/litao4047/archive/2013 ...

  4. 百度地图 pc浏览器获取经纬度

    百度地图 pc浏览器获取经纬度 百度地图 pc浏览器获取经纬度 百度地图 pc浏览器获取经纬度 <html> <head lang="en"> <me ...

  5. 【python】python利用百度地图API:获取经纬度、地图撒点

    本文目的: python通过百度地图API,获取所给地址的经纬度,并且在百度地图上进行撒点. 另:百度地图API功能强大,如: GPS功能(单个点沿线运动). 信息窗口示例(添加纯文字的信息窗口). ...

  6. 百度地图自动检索获取地理位置(经纬度)

     百度地图自动检索获取地理位置,含有百度的自动检索和获取当前定位的功能! 我把这个功能单独写了一个界面,给分离了出来!假如项目中地址输入框有一些框架,这个要当心一些,定位会使索引位置发生错乱!注意改动 ...

  7. 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址

    文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...

  8. 通过腾讯地图、高德地图、百度地图开发接口获取坐标对应的周边相关信息

    通过腾讯地图.高德地图.百度地图开发接口获取坐标对应的周边相关信息 更新: 以前出于好意暴露了个人的KEY,现已被烂用.为不影响您的业务,请使用我的KEY的朋友去申请自己的KEY,我的KEY将在不久后 ...

  9. 在百度地图中叠加CAD图及GIS数据展示踩坑记

    前言 在之前的几篇博客中分别介绍了 在Cesium中实现与CAD的DWG图叠加显示分析 https://www.cnblogs.com/vjmap/p/16541751.html . 高德地图与CAD ...

最新文章

  1. python客户端和服务端实验_python实现socket客户端和服务端简单示例
  2. HDU_1003 Max Sum
  3. vue2.x vant2.x H5 移动端脚手架
  4. Android单元测试 mock Context,mock静态类的静态方法,测试方法的顺序
  5. Linux如何安装python pandas科学库
  6. 尚硅谷python全套-尚硅谷Java视频教程,粉丝无数,人手一套尚硅谷教程
  7. Python人脸识别之——创建csv文件 create_csv.py 代码 Python3.7
  8. 西门子电机选型参考一
  9. 材料力学考研可以用计算机吗,2020海南大学材料力学专业超详细考研经验分享...
  10. 怎么制作U盘启动盘来安装系统
  11. 做 UI 设计用PS还是AI?都不建议!
  12. 中国酒店周刊 | 上海万信福朋喜来登、包头茂业万豪、武汉江夏万枫酒店开业...
  13. Android Native 代码 Release 编译 - 隐藏符号表
  14. java弹框刷新原页面_JavaScript:关闭弹出窗口时刷新父窗口
  15. Android手游外挂入侵----寓攻于守,方能破敌
  16. 334. 递增的三元子序列 increasingTriplet
  17. 9. Simulink系统仿真
  18. android 程序的后缀,Android Studio项目文件的扩展名是什么?
  19. insmod安装内核module,提示Required key not available
  20. C语言assign方法,R语言中assign函数和get函数的用法

热门文章

  1. H264和H265的学习笔记
  2. vb压缩html代码,用VB压缩Html
  3. CSS打造图片翻转立体3D效果
  4. 火狐各版本下载,且永久不更新
  5. 教你用面向对象方法写一个烟花爆炸的特效
  6. js 字符串加单引号
  7. Android RxJava操作符的学习---组合合并操作符---联合判断多个事件
  8. 黑白翻转棋算法java实现
  9. 教你如何开发VR游戏系列教程一:前言
  10. 面对电信运营商HTTP劫持如何是好,投诉太折腾,不如路由器直接屏蔽广告源