其他
【投稿】坐标系太多傻傻分不清?点线面坐标互转操作送你丨城市数据派
【投稿吗?有稿费的那种!】(点击看详情),是由城市数据派主办的征稿活动,我们希望能够提供更新鲜、更好玩、更有价值的内容,因此决定为派友们开放平台,提供交流和展示才能的机会。小派在此恭候派友们投稿分享!
【本期看点】
你常常遇到,从高德地图、百度地图等商业地图爬取的数据,按经纬度转换成点之后,与WGS84坐标的底图对不上吗?
如果想对纠正偏移的坐标点相对比较简单,在网上找算法反算一下即可。但线文件或者面文件进行坐标转换该怎么实现呢?
本文将给大家普及一下点线面文件在地球坐标、火星坐标、百度坐标相互转换操作攻略。详解往下拉!
本期投稿
吴德馨
广州市交通运输研究所
信息模型部工程师
01 互联网地图的坐标系现状
在GIS领域,规划师们经常需要从高德地图、百度地图等商业地图爬取数据,但大家爬取下来的数据将经纬度转换成点之后会发现与WGS84坐标的底图会有一定偏差,对不上,这种现象出现是因为我国的测绘法要求商业地图需要对坐标进行加密。
上述情况出现的原因在很多文章中都有普及,在我国所有的公开的电子地图、导航设备,都需要加入国家保密插件,它是对真实坐标系统进行人为的加偏处理,按照特殊的算法,将真实的坐标加密成虚假的坐标。
国内大部分的在线地图都是采用的在WGS84坐标进行加密基础上形成的火星坐标系,也叫国测局坐标系(GCJ02);百度地图采用的是百度坐标(BD09),是在GCJ-02基础上二次加密而成。
国内主要商业地图的采用的坐标系
02 点文件地球坐标、火星坐标、百度坐标相互转换方法
1)借助工具转换:如未来交通实验室开发的万能坐标转换;2) 借助代码进行转换:Coordtransform坐标转换库,提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换的工具模块;https://github.com/wandergis/coordTransform3)利用各个地图提供的Web API来转换:如高德坐标转换Web API;https://lbs.amap.com/api/webservice/guide/api/convert/
03 线面文件坐标转换的转换步骤
规划师在应用GIS过程中,可能会遇到需要结合高德、百度等商业地图参照绘制路网、建筑、规划区域等等情形(在ArcGIS中添加在线地图插件http://www.arctiler.com/p_plugin.html),绘制好路网之后如何和原先的WGS84数据对应呢?
这种情形在百度地图、谷歌地图、腾讯地图都会出现,前面介绍的坐标转换其基本原理都是输入一个坐标值,然后对坐标值反算转换到我们坐标,坐标转换工具、Web API等转换模式对于线文件、面文件坐标都不适用。 如何解决线文件的坐标转换,唯一可行的路径先把线变成“点”,然后依次转换点坐标就行了。
需要借助的工具包括ArcGIS软件要素转JSON工具箱和JSON转要素工具箱、Python编程。具体来说分为三步:
第一步 打开ArcGIS桌面版,在系统工具箱中点击打开Conversion Tools—JSON工具箱,借助要素转json工具把线文件、面文件所有的拐点提取出来,生成json文件,用文本工具打开转换后的json文件,其中paths部分就是要素的所有拐点信息。
期待合作
更多服务