微信小程序踩坑::地图如何实时获取当前城市名称搜索poi信息

123 阅读2分钟

# 持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天

前言:高德开放平台是国内技术领先的LBS服务提供商,拥有先进的数据融合技术和海量的数据处理能力。服务超过三十万款移动应用,日均处理定位请求及路径规划数百亿次。高德开放平台向广大开发者提供覆盖移动端和Web端的开发工具,开发者通过调用开发包或接口即可在应用或网页中实现地图显示、标注、位置检索等功能。使得LBS应用的开发过程更加容易

接上文,上次做完后,以为没问题了,后来新需求说需要多个城市,每个城市都有门店,需要根据用户所在城市去搜索poi并且显示在地图上,想了几种办法,因为高德api查不了多个城市,传多个城市参数会返回空,后来想直接搜索全国信息,发现也不行,搜索全国的高德关键字只能传泛词,不能搜索较为精确的关键字,想到的第一个方法就是通过后端传经纬度换算成城市名称搜索,返回的通过正则去切割为城市名称,但是发现直辖市和省市返回的不好区分,容易出错,就换了另一种办法

分割正则: var reg = /.+?(省|市|自治区|自治州|县|区)/g // 省市区的正则\ // console.log(res.data.match(reg),"市") // ['广东省','广州市','白云区']

lQLPJxZsjpSJOtDNAXXNBKewZp603l6tKZwCsu0QGMD7AA_1191_373.png 中间还想过通过ip查询城市,不过好像只有浏览器才可以我就放弃了 1.最终方法为通过高德api里的逆地理编码功能,把获取到的经纬度转为城市编码,再通过poi接口搜索,这样就解决了不同城市搜索显示问题(一举两得)

lQLPJxZsjpSJOqXNAsXNBUWwkpVzhKwigWUCsu0QFUDWAA_1349_709.png 获取到城市code后,执行poi就行