因为公司项目需求,需要集成百度地图实现定位功能和反地理编码功能。本人以前集成过百度地图完成过定位功能、地图显示和大头针功能以及反地理编码和地理编码功能,所以做起来轻车熟路。我用的是CocoaPods集成第三方库,直接pod 'BaiduMapKit' 即可。
额外有一点需要补充给大家的是:以前用高德地图和百度地图均完成过基本功能。在测试定位功能时,百度到办法,重置模拟机并允许模拟机定位。在模拟机上百度地图和高德地图均定位准确。但不知为何:过了一段时间按照以前的方法,模拟机在二者上都不能成功定位,并打印出定位失败的信息。不过用真机测试,定位功能正常。若有人知道其中缘由及其解决办法,还望不吝赐教。
快速封装好一个类,用于定位。用真机测试,定位成功。但是,问题出现了:调用反地理编码方法,工程走了发起反Geo检索失败的代码。本人百思不得其解,重新检查了代码,发现代码无误。最后在开发群里交流,有人说:可能是key过期了。然后,我抱着试一试的心态,用工程的Bundle Identifer重新申请了key,并在工程中做了修改,在真机上进行测试,反检索发起成功。事后,我才明白了原因:我之前用的key是公司原先申请的, 而在仿写公司项目的过程中,Bundle Identifier已经被同事修改,所以key不对应,自然反Geo检索失败。
总结:像这种非技术性问题,定位成功,而反检索发起失败,在推测问题时,很难想到是Key的问题,反而会浪费很多时间去排查其他原因。所以,记录下来,以免再次跳坑,并且也帮助其他人。再次,团队开发,要进行及时沟通与交流,修改共性设置需及时告知同事。