开发指南第三章定位信息前半部分的代码实现的功能是:当手机采集的地理位置(经纬度)发生改变时在界面上显示出改变后的经纬度。如果开发过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/"
可以使用谷歌地图。
1、一般用手机或者GPS测得的经纬度是经度在前,纬度在后。而利用地图搜索要求输入的时候纬度在前,经度在后。
2、打开谷歌地图,在搜索框中输入经纬度,中间用英文的","分开。点击搜索即可。这里以经纬度:3119243,12154044为例搜索。结果如图所示。但是谷歌地图的定位是不太精确的。
3、最精确的方式是利用谷歌地球软件。打开谷歌地球,在左上角图示位置输入经纬度。注意需要确保网络连接正常。
4、点击搜索后谷歌地球会慢慢进入经纬度所在的实际位置。这个位置是非常精确的,除非你的经纬度本身有偏差。
经纬度是经度与纬度的合称组成一个坐标系统,称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。
北纬为正数,南纬为负数。
纬度 是指过椭球面上某点作法线,该点法线与赤道平面的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N;位于赤道以南的点的纬度称南纬,记为S。
纬度数值在0至30度之间的地区称为低纬度地区。
在测绘行业里,有很多仪器可以获取一个地点的坐标,比如全站仪,gps接收机。目前,很多商业手机内置了gps芯片,使手机也有了获取位置坐标的功能。一般gps卫星会以经纬度的形式返回坐标,可以在编程语言中调用手机 *** 作系统提供的原生gps接口,就可以获取经纬度。另外,百度地图,高德地图也提供了获取坐标的接口,但是这个坐标是和地图所用坐标相对应的。
以上就是关于高德地图怎样实现实时定位,得到当前地点的坐标,位置全部的内容,包括:高德地图怎样实现实时定位,得到当前地点的坐标,位置、怎么查经纬度准确地点、如何获取一个地点的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)