高德地图怎么根据定位点获取附近的唯一道路名称?

简介: 问题如题所示:高德地图怎么根据定位点获取附近的唯一道路名称?

今天后台有小伙伴问题一个问题,刚好另一篇推文还没这么快,那就先插个队吧。


问题如题所示:高德地图怎么根据定位点获取附近的唯一道路名称?


这个小伙伴应该是看了强哥之前的写过的《高德地图根据输入地址查询轨迹路线以及获取到所有的路线上的经纬度点》所以来问相关问题的。刚好,我也是比较感兴趣,所以就试着找找解决办法。


首先强哥第一眼看到问题后,就被两个关键字吸引了,没错:附近。有做个地图功能或者经常用地图的小伙伴应该很容易联想到,高德地图上就带有附近的功能,而其相关的API应该就是搜索POI了。


于是不用多说,直接打开高德开放平台,定位到搜索POI,其中便有一个“周边搜索”相关的章节:


https://developer.amap.com/api/webservice/guide/api/search


嗯哼,看来问题还是比较好解决的嘛。看了下对应的接口参数中,有一个可选参数,解释如下:


3.png


哦,从解释中可以看出,types既然是一个类型编码,除了加油站、城市之类的应该也会有我们需要的道路名称,那对应的types会是什么呢?不用多说,直接点击下载图中的《POI分类编码和城市编码表》看看有没有就知道了。


下载下来后,果然有类似的道路名称信息类型:


4.png


嗯,图中190300和190301看着都是我们需要的,直接在页面试试就知道了。高德地图刚好也提供了比较方便的测试方法:


5.png


我们从返回的pois中便能获取到该定位点周边的道路名。是不是很快很方便。


有的小伙伴会问,返回的pois是个数组,这个怎么办呢?到底哪个才是当前定位点最近的道路呢?而且,radius为500米这个也太大了。


强哥经过多次测试后,确实也发现了一下问题,有的定位点,radius缩小到100都能找到数据,可是有的定位点就不行,或者找到多个数据。而如果是多个数据的情况,由于给出来的道路都带有坐标,其实并不是能简单的根据判断两个点的距离然后排序就能获取到最近道路的。以为你不懂得到底高德地图会拿这条路上的哪个点作为返回的定位点。有时候定位点就在这条路上,可是因为radius设置的距离关系,可能会返回多条路的定位信息。


所以,这个方法,粗略的用来找定位点周边有哪些路倒是没有问题,可是要找最近的道路名称就不是特别合适了。


既然不太行,那就再找找其他的API吧。其实高德地图开放出来的API也不算太多,只要你愿意多去试试还是能找到一些能解决问题的功能的。


搜索了一番之后,强哥在“地理/逆地理编码”这节中:


https://lbs.amap.com/api/webservice/guide/api/georegeo


找到了更合适的解决方法:逆地理编码。


同样的一套测试下来结果如下:


6.png


强哥通过多次测试,只要定位点离道路的距离不会非常远(同样跟设置的radius参数有关)。都能在返回结果中的roads中获取到最近的一条路的名称,虽然同样是数组,但是觉得精确很多。如果定位点在就在道路上,返回的肯定是当前这条道路的名称。


再者说,返回的结果名都叫roads,准确率明显比之前POI搜索中用types来区分的方式更明确也更靠谱。


由此我们便找到了解决问题的API。哈哈,看着是不是很简单。不过,整个过程还是需要花费一些时间去查找事例文档以及对API进行测试。直接给出答案,反而觉得较为容易。


不过,上面链接对应的解决方案是web API的接口解决方式,很多小伙伴开发地图都是通过前端jsApi来完成的。有没有对应的文档嘞,当然是有啦,贴心的强哥已经为大家把测试代码打包好了,感兴趣的同学,公众号后台留言:“高德定位获取道路名” ,便可以获取到对应的js代码啦。


对了,千万要记得自己替换高德地图的key哦,强哥已经被类似没替换key导致无法运行的问题回复了无数遍了。


好啦,如果还有一些其他问题的小伙伴,也可以在后台给强哥留言哦,你的留言,也是我出稿的一份动力啊,哈哈!!


就到这啦~

相关文章
|
数据可视化 搜索推荐 JavaScript
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
990 0
|
7月前
|
JSON JavaScript 定位技术
Echarts自定义地图显示区域,可以显示街道,小区,学校等区域
Echarts自定义地图显示区域,可以显示街道,小区,学校等区域
|
移动开发 JavaScript 前端开发
uniapp在H5获取当前定位信息不需要SDK可直接获取城市(包括经纬度省市区和市区编码)
最近在做获取用户当前定位信息的时候,发现uniapp官方提供的兼容性并不是特别好,光注意事项都是密密麻麻一大堆,在实际使用场景下,效果并不理想,也不是很稳定。于是便重新封装了一下腾讯地图的一些东西,提高了下兼容度!下边我会把我用的封装思路逻辑给大家一一讲解。完整代码可私信我我发给你以上便是基于uni-app框架开发,使用Promise进行异步请求和结果返回,封装的H5获取当前详细定位信息组件希望大家一起交流。
1854 0
|
JavaScript 前端开发 定位技术
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
地图开发实战案例:高德地图设置中心点和级别的行政区多边形加载效果
160 0
技术如何支持更好、更绿色的城市?
我们需要绿化复苏,增强城市的抵御能力,支持经济转型。
97 0
技术如何支持更好、更绿色的城市?
|
前端开发 API
智慧城市中城市级建筑白膜的加载与动态调色
本文以cesium为例,重点了阐述了在智慧城市场景中,如何基于cesium进行城市级建筑模拟渲染,以及点击展示模型数据的属性信息,支持根据建筑的不同高度来渲染不同的颜色。 cesium支持将城市建筑信息转换成b3dm数据,通过api可进行展示。
2163 0
智慧城市中城市级建筑白膜的加载与动态调色
|
SQL 定位技术 数据格式
Echarts-地图全国主要城市的分布显示
准备全国城市的sql,包含经纬度、创建map容器、后台代码。
1005 0
Echarts-地图全国主要城市的分布显示
|
机器学习/深度学习 数据采集 人工智能
高德SD地图数据生产自动化技术的路线与实践(道路篇)
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 一、背景及现状 近些年,国内道路交通及相关设施的基础建设日新月异。广大用户日常出行需求旺盛,对所使用到的电子地图产品的数据质量和现势性提出了更高的要求。
高德SD地图数据生产自动化技术的路线与实践(道路篇)
|
算法 定位技术 机器学习/深度学习
高精地图中地面标识识别技术历程与实践
本文将主要介绍高德在高精地图地面标识识别上的技术演进,这些技术手段在不同时期服务了高精地图产线需求,为高德地图构建高精度地图提供了基础的技术保证。

热门文章

最新文章

下一篇
开通oss服务