当前位置: 首页 > news >正文

OpenLayers 入门指南【二】:坐标系与投影转换

目录

        • 一、什么是坐标系
          • 1. 定义
          • 2. 常用的坐标系
          • 3、坐标系选择
        • 二、投影
          • 1. 为什么要投影?
          • 2. 投影分类
          • 3. 如何进行投影转换
        • 三、总结

一、什么是坐标系

坐标系是用于定义、表示和测量地球表面上要素的空间位置的一种框架。 坐标系提供了一种标准化的方法,用于引用和集成来自各种源的空间数据,并确保要素之间精确的空间关系。 其中包括参考点(原点)、坐标轴(例如纬度和经度或者东距和北距)以及测量单位(例如度、米或英尺)。 GIS 中使用的常见坐标系包括地理坐标系、投影坐标系。

1. 定义
  • 地理坐标系 (Geographic Coordinate Systems):使用经纬度定义球体或椭球体表面上点位置的参考系统
  • 投影坐标系 (Projected Coordinate Systems):投影坐标系将地球表面的三维坐标转换为二维平面坐标,用于制图和地图分析应用。投影坐标系始终基于地理坐标系。由于地球是一个曲面,很难将其完美地投影到平面上,因此不同的投影方法会产生不同的变形(例如,面积、形状、距离或方向的变形)
2. 常用的坐标系
  • WGS84(EPSG:4326):是全球定位系统(GPS)所使用的地理坐标系统和地球参考框架。
    WGS84

  • CGCS2000(EPSG:4490):是中国大地坐标系2000,是中国自然资源部(原中国国家测绘地理信息局)建立的地理坐标系,广泛应用于国家测绘、地理信息系统(GIS)和导航等领域。

CGCS2000

  • GCJ02:也被称为火星坐标系。是国家测绘局为保障地理信息安全开发的加密坐标体系,通过非线性加偏算法对真实地理坐标实施偏移处理,主要用于境内的地理数据。区别于GPS坐标(WGS-84坐标系),是在其基础上进行了加密。
  • BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。
  • Pseudo-Mercator(EPSG:3857):又名球形墨卡托或Web墨卡托。是投影坐标系。这是Google Maps和几乎所有其他国外Web制图应用程序使用的坐标系。
3、坐标系选择

坐标系要根据自身项目的要求,地图服务商,网络环境等多种情况结合来判断。

1、项目在互联网环境中,且服务对象为群众或者企业:采用地图服务商坐标系(用百度就选BD09、用高德就GCJ02)。

2、项目在局域内网,服务对象为企业或者政府单位:这个要看服务对象要求,如果服务对象提供了地图服务商,就用地图服务商的坐标系;如果是从零开始,国内的项目建议使用CGCS2000。国外的项目按照服务对象要求使用即可。

二、投影
1. 为什么要投影?

根本原因是由于地球是个是椭球体,球面是无法等距展开为平面,所以转成平面是会存在变形,因此针对不同的使用场景要采用不同的投影类型。那么在实际使用过程中,为了保证数据一致性也需要将不同坐标系下的数据投影到同一个坐标系内进行展示分析。这样才能保证展示与空间分析的准确性。

投影示例

2. 投影分类
  • 变形性质分类

    • 等角投影:投影前后角度不变
    • 等面积投影:投影前后面积不变
    • 任意投影:角度、面积、长度均变形
  • 投影面形状

    • 横圆柱投影:投影面为横圆柱
    • 圆锥投影:投影面为圆锥
    • 方位投影:投影面为平面
  • 投影面位置

    • 正轴投影:投影面中心轴与地轴相互重合
    • 斜轴投影:投影面中心轴与地轴斜向相交
    • 横轴投影:投影面中心轴与地轴相互垂直
  • 切割方法

    • 相切投影:投影面与椭球体相切
    • 相割投影:投影面与椭球体相割

投影分类

投影分类

3. 如何进行投影转换

OpenLayers 代码为例

//需要借助proj4库来实现自定义坐标系,如果不需要自定义坐标系,则可以不使用。
// ol 默认支持EPSG:4326和EPSG:3857坐标系
import proj4 from 'proj4';
import {register} from 'ol/proj/proj4';
// 自定义坐标系
const projConf = [["EPSG:4490", "+proj=longlat +ellps=GRS80 +no_defs"]
]
proj4.defs(projConf);
// 注册坐标系
register(proj4);
// 执行坐标系投影转换,获取新投影坐标系下坐标信息
let newCoord = transform([101,32],'EPSG:4490','EPSG:4545')
三、总结

坐标系与投影转换是 WebGIS 开发的基础核心内容。地理坐标系以经纬度描述地球表面位置,而投影坐标系通过特定数学转换将三维曲面映射为二维平面,二者共同构成空间数据的定位框架。WGS84、CGCS2000 等地理坐标系与 Pseudo-Mercator 等投影坐标系的选择,需结合项目场景(如互联网 / 内网环境、地图服务商标准)综合判断。

OpenLayers开发中,通过 proj4 库可实现自定义坐标系注册与投影转换,这对实现多源数据集成(如不同坐标系的矢量 / 影像数据)起到至关重要的作用。实际应用中,建议优先明确项目数据的坐标系标准,提前规划投影转换流程,以确保空间数据的一致性与分析准确性。

http://www.lryc.cn/news/586868.html

相关文章:

  • linux进程信号II
  • Node.js特训专栏-实战进阶:16. RBAC权限模型设计
  • 基于YOLOv7的改进模型:集成Swin Transformer和ASFF模块
  • 26-计组-数据通路
  • 【软件开发】使用 Spring WebFlux 进行请求校验
  • iOS ish app 打印时间
  • HJ8 合并表记录 10:35
  • Vue中的render()函数
  • 【LeetCode数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
  • 为什么要有延时回调?
  • 【实证分析】上市公司绿色战略数据集(2000-2023年)
  • 如何设计一个合理的 Java Spring Boot 项目结构
  • C++ 强制类型转换
  • 【读书笔记】《C++ Software Design》第六章深入剖析 Adapter、Observer 和 CRTP 模式
  • 开机自动启动同花顺,并设置进程优先级为高
  • Linux驱动开发1:设备驱动模块加载与卸载
  • 【Linux学习笔记】认识信号和信号的产生
  • JAVA JVM虚拟线程
  • HTML 初体验
  • 软件文档体系深度解析:工程视角下的文档架构与治理
  • OneCode3.0 VFS分布式文件管理API速查手册
  • jenkins使用Jenkinsfile部署springboot+docker项目
  • 代码随想录|图论|15并查集理论基础
  • Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)脚步
  • SDN软件定义网络架构深度解析:分层模型与核心机制
  • Redis缓存设计与性能优化指南
  • 解码冯・诺依曼:操作系统是如何为进程 “铺路” 的?
  • [Nagios Core] CGI接口 | 状态数据管理.dat | 性能优化
  • 基于Redis Streams的实时消息处理实战经验分享
  • Appium源码深度解析:从驱动到架构