欢迎使用CSDN-markdown编辑器

来源:互联网 发布:控制台java 编辑:程序博客网 时间:2024/06/07 02:11

最近在做百度地图开发的小软件,实现从当前位置到搜索位置的导航,遇到了一个问题,就是坐标的转化,通过查看大家的帖子和SDK,我最终把这个问题解决啦。
在这里我写详细一点吧,方便大家查看,首先定位的坐标格式选用option.setCoorType(“gcj02”);即国标,在得到定位坐标后要在地图上显示那么得用百度地图的坐标即bd09ll所以需要转化,
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordType.COMMON);
converter.coord(latLng);
LatLng desLatLng = converter.convert();
把得到的latlng转化成需要的百度坐标 deslatlng,这样定位的坐标显示就没有问题啦。
有些可能需要Poi搜索,那搜索得到的坐标是百度坐标,那导航的时候一般是从自己的位置到搜索的位置,我导航选用的是国标GCJ02,所以要把百度坐标转化为国标,最后我发现LocationClient.getBDLocationInCoorType(BDLocation src, java.lang.String transferType ).getLatitude()函数可以实现(这个在定位SDK是LocatClientl类的成员函数,可能有些帖子说的有点问题),那需要把你得到的坐标构造成一个BDlocation对象,所以用
BDLocation bdLocation=new BDLocation();
bdLocation.setLongitude(lng.longitude);
bdLocation.setLatitude(lng.latitude); lng是LatLng对象,那么到现在,你可以用
double lax = LocationClient.getBDLocationInCoorType(bdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude();
double lox=LocationClient.getBDLocationInCoorType(bdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02). getLongitude();
得到你需要的国标格式的经纬度啦。
网上的帖子还有几篇,写的都挺好的,但是有点不太详细,基本上解决了定位、搜索和导航中坐标转换的问题,我用的是导航SDK v2.0.0, 定位SDK v6.1.2 ,可能有些地方还是不太恰当,希望对大家有所帮助

0 0
原创粉丝点击