关于地图坐标转换的小总结
2017-03-20 10:23
337 查看
本文仅记录一下当前项目APP使用高德地图遇到的问题。
平台使用的是百度地图(原方案是规定统一使用高德),APP端使用的是高德地图,对于各家地图的好坏先不说,这里只是说明下经纬度转换问题。仅做个人记录笔记,以防忘记。不论百度地图,高德地图,还是其他地图,都会有个坐标转换工具类。
高德地图的相关开发说明链接
原文档是如下的示例:
CoordinateConverter converter = new CoordinateConverter(); // CoordType.GPS 待转换坐标类型 converter.from(CoordType.GPS); // sourceLatLng待转换坐标点 LatLng类型 converter.coord(sourceLatLng); // 执行转换操作 LatLng desLatLng = converter.convert();
但是工程项目中使用时converter.coord()方法参数并不是latLang类型,而是DPoint,因此需要将LatLang转化为DPoint类型,返回的类型也是DPoint。如下是我工程中的代码
/** * 百度坐标转换为高德坐标 */ private LatLng baiduConverGaode(LatLng latLng) { CoordinateConverter converter = new CoordinateConverter(this); // CoordType.GPS 待转换坐标类型 converter.from(CoordinateConverter.CoordType.BAIDU);//百度坐标 try { // sourceLatLng待转换坐标点 LatLng类型 DPoint dPoint = new DPoint(); dPoint.setLongitude(latLng.longitude); dPoint.setLatitude(latLng.latitude); converter.coord(dPoint); // 执行转换操作 DPoint point = converter.convert(); return new LatLng(point.getLatitude(),point.getLongitude()); } catch (Exception e) { e.printStackTrace(); return null; } }
converter.from()参数是传入的坐标系,CoordType类型中有百度,高德,GPS,soso地图等多种选择。根据传入的坐标选择。 地图开发中有个小问题整了一下午,就是new LatLng(纬度,经度)时将经纬度弄颠倒了,导致标注点无法显示。即
new LatLng(point.getLatitude(), point.getLongitude())
先百度普及一下,纬度范围是:-90~90,经度范围是:-180~180。百度坐标拾取,高德坐标拾取选取一个点,例如[116.380122,39.934191]。附上坐标拾取链接,方便其他人使用。
百度坐标拾取器
高德坐标拾取器
相关文章推荐
- 关于地图坐标到屏幕坐标的转换
- 关于百度地图API的地图坐标转换问题
- 关于百度地图API的地图坐标转换问题
- 关于vc++中的坐标转换的几点认识
- AS3 RPG游戏引擎开发日志3:地图坐标转换
- 关于ffmpeg 的总结(一个linux 下 集 屏幕录像录音,音频视频转换,合并音频视频文件,格式转换于一身的命令)
- 坐标转换程序(地图坐标到图像坐标)
- 关于投影和坐标转换的文章
- 关于android2.2地图定位的问题,程序员取得了设备所在经纬度,得不到具体的地址。这里做一下总结。
- 地图坐标与屏幕坐标的转换
- 关于类型转换 此作者总结的很好
- 关于字符串转换的总结
- 一个地图坐标转换成屏幕坐标
- 关于ToMapPoint过时造成的坐标转换的偏差
- 关于经纬度坐标转换的方法
- 【arcgis】3、如何在ARC/INFO中数字化地图,以及坐标转换
- 与上海天文台关于坐标转换的约定
- 转:一个屏幕坐标和地图坐标转换的js代码
- 关于坐标空间和转换的说明
- 关于逻辑坐标和设备坐标的转换