百度地图中如何获取某个经纬度附近的地址
我们在网页版中使用百度地图的时候,可以发现点击一下定位以后会定位到现在自己这里的位置来,并且显示自己的位置大概是什么地方。
但是查阅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了。也就无法实现定位操作。
百度地图中如何获取某个经纬度附近的地址相关推荐
- vue百度地图API、获取当前经纬度以及地理位置
百度API的使用 一.创建MAP实例 var self = thiswindow.map = new BMap.Map(this.$refs.allmap); // 创建Map实例window.geo ...
- Java 百度地图 根据名称获取坐标(经纬度)
申请百度开放平台KEY(ak) 没申请,随便找了一个 参数说明: region:召回城市 city_limit:区域数据召回限制 这两个参数必须配合使用,city_limit为true时,仅召回reg ...
- mysql geocode_百度地图Geocoding API获取特定地区或地址的经纬度信息,然后在MySql数据库多表循环遍历更新...
1.数据库多表循环更新的思想在这个链接上,标题是"MySql多表循环遍历更新", 链接地址http://www.cnblogs.com/litao4047/archive/2013 ...
- 百度地图 pc浏览器获取经纬度
百度地图 pc浏览器获取经纬度 百度地图 pc浏览器获取经纬度 百度地图 pc浏览器获取经纬度 <html> <head lang="en"> <me ...
- 【python】python利用百度地图API:获取经纬度、地图撒点
本文目的: python通过百度地图API,获取所给地址的经纬度,并且在百度地图上进行撒点. 另:百度地图API功能强大,如: GPS功能(单个点沿线运动). 信息窗口示例(添加纯文字的信息窗口). ...
- 百度地图自动检索获取地理位置(经纬度)
百度地图自动检索获取地理位置,含有百度的自动检索和获取当前定位的功能! 我把这个功能单独写了一个界面,给分离了出来!假如项目中地址输入框有一些框架,这个要当心一些,定位会使索引位置发生错乱!注意改动 ...
- 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址
文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...
- 通过腾讯地图、高德地图、百度地图开发接口获取坐标对应的周边相关信息
通过腾讯地图.高德地图.百度地图开发接口获取坐标对应的周边相关信息 更新: 以前出于好意暴露了个人的KEY,现已被烂用.为不影响您的业务,请使用我的KEY的朋友去申请自己的KEY,我的KEY将在不久后 ...
- 在百度地图中叠加CAD图及GIS数据展示踩坑记
前言 在之前的几篇博客中分别介绍了 在Cesium中实现与CAD的DWG图叠加显示分析 https://www.cnblogs.com/vjmap/p/16541751.html . 高德地图与CAD ...
最新文章
- python客户端和服务端实验_python实现socket客户端和服务端简单示例
- HDU_1003 Max Sum
- vue2.x vant2.x H5 移动端脚手架
- Android单元测试 mock Context,mock静态类的静态方法,测试方法的顺序
- Linux如何安装python pandas科学库
- 尚硅谷python全套-尚硅谷Java视频教程,粉丝无数,人手一套尚硅谷教程
- Python人脸识别之——创建csv文件 create_csv.py 代码 Python3.7
- 西门子电机选型参考一
- 材料力学考研可以用计算机吗,2020海南大学材料力学专业超详细考研经验分享...
- 怎么制作U盘启动盘来安装系统
- 做 UI 设计用PS还是AI?都不建议!
- 中国酒店周刊 | 上海万信福朋喜来登、包头茂业万豪、武汉江夏万枫酒店开业...
- Android Native 代码 Release 编译 - 隐藏符号表
- java弹框刷新原页面_JavaScript:关闭弹出窗口时刷新父窗口
- Android手游外挂入侵----寓攻于守,方能破敌
- 334. 递增的三元子序列 increasingTriplet
- 9. Simulink系统仿真
- android 程序的后缀,Android Studio项目文件的扩展名是什么?
- insmod安装内核module,提示Required key not available
- C语言assign方法,R语言中assign函数和get函数的用法