这两天因为需要开始接触地图开发的内容,所以开始搜索有没有一些好的第三方地图,现在市面上大多数使用的都是百度地图,而谷歌地图因为一些原因,在国内无法提供服务,虽然百度地图的UI比较友好,定位更加准确,但是由于我使用的开发环境是Android studio,而百度地图更适合Eclipse的开发者,所以我选择高德地图。
但是我将蓝牙模块中的GPS坐标传入APP中发现效果与预期的有很大偏差,经过查找资料才了解高德地图用的并不是GPS坐标,经过查找资料,地图坐标大致分为几种:
1、GPS、WGS84,也就是原始坐标体系,这是国际公认的世界标准坐标体系;
2、GCJ-02,又称为“火星坐标”,国家测绘局在02年发布的坐标体系,在国内,使用此坐标体系的有很多,比如:google、高德等;
3、其他特殊坐标体系,一般都是由火星坐标通过偏移算法计算得出的,比如百度使用的是BD-09坐标,搜狗使用的是自己的搜狗坐标。
其实通过搜索高德地图的API文档也能了解,在com.amap.api.maps2d.CoordinateConverter.CoordType包中介绍了坐标的类型,
CoordinateConverter类中进行坐标转换
LatLng mark=null;// double lat=39+50.3856/60.0; 这是传入的GPS坐标,由于分为度和分,所以进行换算//double lon=116+11.2714/60.0;double lat=39.846195;这是从百度地图获得的数据double lon=116.16;CoordinateConverter converter=new CoordinateConverter();converter.from(CoordinateConverter.CoordType.BAIDU); 设定要转换的坐标类型,如果是GPS坐标就是.GPS);try {converter.coord(new LatLng(lat,lon));mark=converter.convert();}catch (Exception e){}Marker marker = aMap.addMarker(new MarkerOptions()在地图上标注出来.position(mark).title("定位器").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)).draggable(true));}
经过坐标转换,地图经度大大提高,希望能对大家的学习提供帮助,我也是刚开始学习android,如果写的不全面,希望能提出指正。
如果觉得《Android开发高德地图定位中GPS坐标转换》对你有帮助,请点赞、收藏,并留下你的观点哦!