开发指南第三章定位信息前半部分的代码实现的功能是:当手机采集的地理位置(经纬度)发生改变时在界面上显示出改变后的经纬度。如果开发过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/"
通过浏览器来获取用户当前位置。基于此特性可以开发基于位置的服务应用。在获取地理位置信息前,首先浏览器都会向用户询问是否愿意共享其位置信息,待用户同意后才能使用。
Html5获取地理位置信息是通过Geolocation API提供,使用其getCurrentPosition方法,此方法中有三个参数,分别是成功获取到地理位置信息时所执行的回调函数,失败时所执行的回调函数和可选属性配置项。
百度地图是通过移动通信基站定位来确定当前位置所在的城市。其原理就是通过测算周围基站与手机的距离来交会估算手机的空间位置。
手机定位是指通过特定的定位技术来获取移动手机或终端用户的位置信息(经纬度坐标),在电子地图上标出被定位对象的位置的技术或服务。定位技术有两种,一种是基于GPS的定位,一种是基于移动运营网的基站的定位。基于GPS的定位方式是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位的。基站定位则是利用基站对手机的距离的测算距离来确定手机位置的。后者不需要手机具有GPS定位能力,但是精度很大程度依赖于基站的分布及覆盖范围的大小,有时误差会超过一公里。前者定位精度较高。此外还有利用Wifi在小范围内定位的方式。
通常我们在手机端打开百度地图后,客户端会自动对我们所处的位置进行定位的。如果没有进行定位的话,你可以点击地图页面的左下角的圆形图标,见下图红色框中所示,点击之后会自动更新,并且显示定位的地址信息。
必须有啊。。如果是 网页应用,就用 百度的JavaScript api 。如果是移动端,可以查看安卓SDK 的示例
// 百度地图API功能var map = new BMapMap("allmap");
var point = new BMapPoint(116331398,39897445);
mapcenterAndZoom(point,12);
var geolocation = new BMapGeolocation();
geolocationgetCurrentPosition(function(r){
if(thisgetStatus() == BMAP_STATUS_SUCCESS){
var mk = new BMapMarker(rpoint);
mapaddOverlay(mk);
mappanTo(rpoint);
alert('您的位置:'+rpointlng+','+rpointlat);
}
else {
alert('failed'+thisgetStatus());
}
},{enableHighAccuracy: true})
官方示例!
以上就是关于高德地图怎样实现实时定位,得到当前地点的坐标,位置全部的内容,包括:高德地图怎样实现实时定位,得到当前地点的坐标,位置、java怎么调用地图获取地理位置信息、android 版百度地图如何通过定位功能获得当前的位置所在的城市等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)