⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️
小程序的地图定位与导航以及非常常见且在很多小程序上都已在使用,
下面让我讲讲当我在使用腾讯位置服务这款微信小程序JavaScript SDK时,遇到的天坑!
重要!!!
地址解析(地址转坐标)
geocoder(options:Object)
与
路线规划
direction(options:Object)
当小程序要实现的功能是,先输入起点名称,再输入终点名称,然后进行路线规划时,
要经历的过程有通过将起点、终点名称解析为经纬度,再将两点的经纬度传入路线规划的函数,进行路线规划。
而我所要说的坑就是,地址解析与路线规划的先后顺序问题
当你先地址解析将page的data中的start和end分别赋值为起终点的经纬度,这个时候立即调用direction函数,会发现先执行direction函数,才进行上面的赋值,想要解决这个问题,必须要把direction函数设立时间间隔为至少 1s 后再运行,这时才能正常赋值。
bug出在腾讯服务提供这两个api时与对应执行时的生命周期有关。(官方文档中也没讲清楚api调用要设置异步且需要一定的时间间隔)
必须要把direction函数设立时间间隔为至少 0.1s 后再运行!!
如下图:
希望我的文章对你有所帮助
https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/methodGeocoder
文档说的很清楚,是异步请求。success执行时间跟网络请求耗时有关,你定的 0.1秒也不保险。