暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

更方便、快捷的PG+PostGIS转换火星坐标系、百度坐标系的方法

作者:刘航

关于坐标系

我们通常用经纬度来表示一个地理位置,但是由于一些原因,我们从不同渠道得到的经纬度信息可能并不是在同一个坐标系下。
高德地图、腾讯地图以及谷歌中国区地图使用的是GCJ-02坐标系
百度地图使用的是BD-09坐标系
底层接口(HTML5 Geolocation或ios、安卓API)通过GPS设备获取的坐标使用的是WGS-84坐标系
不同的坐标系之间可能有几十到几百米的偏移,所以在开发基于地图的产品,或者做地理数据可视化时,我们需要修正不同坐标系之间的偏差。

WGS-84 - 世界大地测量坐标系

WGS-84(World Geodetic System, WGS)是使用最广泛的坐标系,也是世界通用的坐标系,GPS设备得到的经纬度就是在WGS84坐标系下的经纬度。通常通过底层接口得到的定位信息都是WGS84坐标系。如天地图,osm底图等。

GCJ-02 - 国测局坐标系

GCJ-02(G-Guojia国家,C-Cehui测绘,J-Ju局),又被称为火星坐标系,是一种基于WGS-84制定的大地测量系统,由中国国测局制定。此坐标系所采用的混淆算法会在经纬度中加入随机的偏移。如谷歌地图(中国区),高德地图,腾讯地图等。

BD-09 - 百度坐标系系

BD-09(Baidu, BD)是百度地图使用的地理坐标系,其在GCJ-02基础上又增加了一次偏移,用来保护用户隐私。从百度产品中得到的坐标都是BD-09坐标系。

如何安装

PostgreSQL安装PostGIS扩展
复制geoc-pg-coordtansform.sql中代码,在数据库执行。源码

示例

    GCJ02转WGS84
    select geoc_gcj02towgs84(geom) from test_table
    WGS84转GCJ02
    select geoc_wgs84togcj02(geom) from test_table
    WGS84转BD09
    select geoc_wgs84tobd09(geom) from test_table
    BD09转WGS84
    select geoc_bd09towgs84(geom) from test_table
    GCJ02转BD09
    select geoc_gcj02tobd09(geom) from test_table
    BD09转GCJ02
    select geoc_bd09togcj02(geom) from test_table


    转换方法

    基于 PG+PostGIS 进行三种坐标系之间的转换,支持点、线、面、多点、多线、多面等各种需求进行互转
    geoc_gcj02towgs84:火星坐标系转WGS84坐标系
    geoc_wgs84togcj02:WGS84坐标系转火星坐标系
    geoc_wgs84tobd09:WGS84坐标系转百度坐标系
    geoc_bd09towgs84:百度坐标系转WGS84坐标系
    geoc_gcj02tobd09:火星坐标系转百度坐标系
    geoc_bd09togcj02:百度坐标系转火星坐标系

    注意事项

    传入的geometry参数的 SRID 必须是 4326 或 4490 ,否则返回null。

    github源码地址(https://github.com/geocompass/pg-coordtransform)

    I Love PG

    关于我们

    中国开源软件推进联盟PostgreSQL分会(简称:PG分会)于2017年成立,由国内多家PG生态企业所共同发起,业务上接受工信部产业发展研究院指导。PG分会致力于构建PG产业生态,推动PG产学研用发展,是国内一家PG行业协会组织。



    欢迎投稿

    做你的舞台,show出自己的才华 。

    投稿邮箱:partner@postgresqlchina.com

                                   

                                     ——愿能安放你不羁的灵魂


    技术文章精彩回顾




    PostgreSQL学习的九层宝塔
    PostgreSQL职业发展与学习攻略
    搞懂PostgreSQL数据库透明数据加密之加密算法介绍
    一文读懂PostgreSQL-12分区表
    PostgreSQL源码学习之:RegularLock
    Postgresql源码学习之词法和语法分析
    PostgreSQL buffer管理
    最佳实践—PG数据库系统表空间重建
    PostgreSQL V12中的流复制配置
    2019,年度数据库舍 PostgreSQL 其谁?
    PostgreSQL使用分片(sharding)实现水平可扩展性
    一文搞懂PostgreSQL物化视图
    PostgreSQL原理解析之:PostgreSQL备机是否做checkpoint
    PostgreSQL复制技术概述

    PG活动精彩回顾




    见证精彩|PostgresConf.CN2019大会盛大开幕
    PostgresConf.CN2019大会DAY2|三大分论坛,精彩不断
    PostgresConf.CN2019培训日|爆满!Training Day现场速递!
    「PCC-Training Day」培训日Day2圆满结束,PCC2019完美收官
    创建PG全球生态!PostgresConf.CN2019大会盛大召开
    首站起航!2019“让PG‘象’前行”上海站成功举行
    走进蓉城丨2019“让PG‘象’前行”成都站成功举行
    中国PG象牙塔计划发布,首批合作高校授牌仪式在天津举行
    PostgreSQL实训基地落户沈阳航空航天大学和渤海大学,高校数据库课改正当时
    群英论道聚北京,共话PostgreSQL
    相聚巴厘岛| PG Conf.Asia 2019  DAY0、DAY1简报
    相知巴厘岛| PG Conf.Asia 2019 DAY2简报
    相惜巴厘岛| PG Conf.Asia 2019 DAY3简报
    独家|硅谷Postgres大会简报
    全球规模最大的PostgreSQL会议等你来!

    PG培训认证精彩回顾




    关于中国PostgreSQL培训认证,你想知道的都在这里!
    首批中国PGCA培训圆满结束,首批认证考试将于10月18日和20日举行!
    中国首批PGCA认证考试圆满结束,203位考生成功获得认证!
    中国第二批PGCA认证考试圆满结束,115位考生喜获认证!
    请查收:中国首批PGCA证书!
    重要通知:三方共建,中国PostgreSQL认证权威升级!
    一场考试迎新年 | 12月28日,首次PGCE中级认证考试开考!
    近500人参与!首次PGCE中级、第三批次PGCA初级认证考试落幕!



    文章转载自开源软件联盟PostgreSQL分会,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论