欢迎使用CSDN-markdown编辑器
2015-10-11 10:51
369 查看
最近在做百度地图开发的小软件,实现从当前位置到搜索位置的导航,遇到了一个问题,就是坐标的转化,通过查看大家的帖子和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 ,可能有些地方还是不太恰当,希望对大家有所帮助
在这里我写详细一点吧,方便大家查看,首先定位的坐标格式选用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 ,可能有些地方还是不太恰当,希望对大家有所帮助
相关文章推荐
- 二、机器学习系统设计笔记之对真实样本分类
- PHPSingleton模式的例子
- HOJ-1004
- UML宏观总结
- 如何做好测试管理工作
- 启动avd manager的时候,提示“系统找不到指定文件”的一种解决办法
- uploadify 上传,后台获得不到session信息
- linq list去除重复项
- 随手笔记3(功能测试第一章)
- 图像拼接 SIFT资料合集
- 学习日志---Linux打卡6
- ios之单例模式
- 数据库的一点小总结
- 数据持久化的方法
- 创建自己Stack底层使用链表java版本
- 软件工程之需求分析
- lazarus:生成1到100内的素数
- 各种传值方法
- wave文件(*.wav)格式、PCM数据格式, goldwave 可以播放pcm raw audio
- 使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结