开发指南第三章定位信息前半部分的代码实现的功能是:当手机采集的地理位置(经纬度)发生改变时在界面上显示出改变后的经纬度。如果开发过android原生定位程序的开发者应该对这部分代码不陌生,中规中矩,先注册位置监听服务,然后当位置发生改变后出发onLocationChanged()方法。现在请在官网上下载示例代码,导入工程后开启包comamapcnapislocation中的MyLocationjava文件,该文件实现的主要功能是:初始化地图并且实现首次定位,地图会自动移动到定位点,我们一会便要基于这个文件来完成地图自动实时定位的功能。
看到这儿,有人可能想把MyLocation文件中的内容与第三章给出的android原生定位模块简单整合。如果你的解决思路是:在onLocationChanged()方法中企图在地图上绘制出当前的位置,那么就会遇到很大的麻烦。因为如果用高德地图提供的api在地图上绘制定位点的话一定要调用类MyLocationOverlay中的enableMyLocation()方法,根据官方参考资料,这个方法封装了android原生的类LocationManager中的requestLocationUpdates()方法,所以你在写onLocationChanged()方法前一定是已经调用了原生的类LocationManager中的requestLocationUpdates()方法,这样一来造成了LocationManager在没有removeUpdate前又进行了一次requestLocationUpdates,由此造成程序意外退出。
所以还是回到开发指南第三章,好好看看后半部分:如果想让地图跟随当前位置移动,需要继承MyLocationOverlay 并实现其onLocationChanged()方法,调用MapViewgetController()animateTo()方法移动地图位置。官方用户指南上的这句原话正是问题的正解,不过官网实在太坑爹,简简单单几行文字和代码,对于浣熊这种刚刚接触地图开发的小白来说实在是看得一头雾水,还在一阵瞎折腾,终于解决了问题,所以共享出来,希望和我一样的小白能够少走些弯路。
我先把修改后的MyLocationjava文件整个贴出来,在增加或改动的代码前后均表明了注释(不包括包的改动):“/change start/”和"/change end/"
首先,先可以明确的是,一个微信小程序(非个人)是可以多地定位的,目前微信官方支持微信小程序设置10个地点,如果你想继续设置地点,可以下载《调高地点额度申请表》,填写之后发送到placeominiprogram@qqcom,微信官方审核之后,你就可以继续设置微信小程序的地点。要注意的是,调高地址额度没有限制,也就是说你原来可以设置10个,申请之后这个数量不限制。
其次必须注意的是一个经营资质只能添加一个地点,一个地点只能展示一个微信小程序。可能有人会觉得疑惑,不是说可以设置10个吗我们来详细说说:
在设定附近小程序的位置时,官方要求地点的经营主体和小程序的主体必须一致或相关。然后在设置附近小程序时,需要提供地点的经营资质信息,通过审核后可以添加地点。
这里我们可以看到添加地点时,有两个选项,一个是“公众号账号主体”一个是“相关主体”,这就是我们说的一个经营资质只能设置一个位置。
没有用过这种定位模块,但可以很肯定,商家发给你的除了这个物理装置外,肯定还会给你一套SDK或者说API接口文档。
整个使用过程大概如些:所谓的定位模块里面应该是GRS模块,你还需要买一个单片机开发板(不想买的话用自己的电脑也行,甚至连接到手机也行,当然现在的电脑和手机可能都不会有串口了,可以买根USB转串口的线),将定位模块连接到电脑或开发板或手机,这个连接应该是用串口连接的,所以你需要学串口通信编程。
接下来是写代码了,如果连的是电脑或单片机,开发语言无疑问是C语言。连手机开发,则开发的是APP,安卓系统就需要学习JAVA,苹果手机则需要学习Objective-C。如果商家只提供C语言的接口,那手机的你就不用考虑了。你可以咨询商家试试,有什么问题可以讨论,希望你能坚持下去,我高中就学了C语言,结果没坚持挺悔的。
以上就是关于高德地图怎样实现实时定位,得到当前地点的坐标,位置全部的内容,包括:高德地图怎样实现实时定位,得到当前地点的坐标,位置、一个小程序定位多个位置如何实现、关于用C语言写定位程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)