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

WebGIS开发中不同坐标系坐标转换问题

在 JavaScript 中,使用 proj4 库进行坐标系转换是一个非常常见的操作。proj4 是一个支持多种坐标系的 JavaScript 库,提供了从一种坐标系到另一种坐标系的转换功能。

以下是使用 proj4 进行坐标系转换的基本步骤:


1. 安装 proj4

你可以通过 npm 或直接引入 CDN 使用 proj4

通过 npm 安装

npm install proj4

通过 CDN 引入

<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.8.1/proj4.js"></script>

2. 示例:WGS84 转换为 Web Mercator

WGS84 是一个全球通用的地理坐标系(经纬度),而 Web Mercator 通常用于网络地图(比如 Google Maps、OpenStreetMap)。

以下是代码示例:

// 导入 proj4 (如果通过 CDN 引入,则不需要这行代码)
const proj4 = require('proj4');// 定义坐标系
const WGS84 = 'EPSG:4326'; // WGS84 坐标系
const WebMercator = 'EPSG:3857'; // Web Mercator 坐标系// 定义一个点的经纬度
const point = [116.397128, 39.916527]; // 北京天安门经纬度// 转换坐标
const convertedPoint = proj4(WGS84, WebMercator, point);console.log('转换后的坐标:', convertedPoint);

3. 自定义坐标系

如果你需要转换到某个自定义坐标系,可以通过 proj4proj4.defs 定义。

示例:定义一个 CGCS2000 坐标系

// 定义 CGCS2000 (EPSG:4490)
proj4.defs("EPSG:4490", "+proj=longlat +datum=CGCS2000 +no_defs");// 从 WGS84 转换到 CGCS2000
const point = [116.397128, 39.916527]; // 北京天安门经纬度
const convertedPoint = proj4('EPSG:4326', 'EPSG:4490', point);console.log('CGCS2000 坐标:', convertedPoint);

4. 扩展:绑定坐标文件

如果你需要加载自定义的 .prj 或其他坐标文件,可以结合 proj4 和第三方工具(如 proj4leaflet)实现。


5. 常见 EPSG 代码对照表

坐标系名称EPSG 代码
WGS84 (经纬度)EPSG:4326
Web MercatorEPSG:3857
CGCS2000EPSG:4490
UTM 坐标系EPSG:326xx (北半球),EPSG:327xx (南半球)
http://www.lryc.cn/news/487374.html

相关文章:

  • 【青牛科技】视频监控器应用
  • AWTK-WIDGET-WEB-VIEW 实现笔记 (3) - MacOS
  • PgSQL即时编译JIT | 第1期 | JIT初识
  • Go小记:使用Go实现ssh客户端
  • Nginx Spring boot指定域名跨域设置
  • 深入理解Redis(七)----Redis实现分布式锁
  • Database Advantages (数据库系统的优点)
  • Qt桌面应用开发 第五天(常用控件)
  • 初识Linux · 信号处理 · 续
  • 【Linux】虚拟地址空间,页表,物理内存
  • C++ 并发专题 - 线程安全的单例模式
  • Spring Boot汽车世界:资讯与技术的交汇
  • 力扣 LeetCode 541. 反转字符串II(Day4:字符串)
  • Django5 2024全栈开发指南(一):框架简介、环境搭建与项目结构
  • Uniapp运行环境判断和解决跨端兼容性详解
  • Linux设置开机自动执行脚本 rc-local
  • 驱动开发小问题 -记录一下
  • 学习笔记018——若依框架数据权限功能的实现
  • Nginx文件下载服务器搭建
  • AWD脚本编写_1
  • HarmonyOS 如何获取设备信息(系统、版本、网络连接状态)
  • 2411rust,1.80
  • FPGA 第6讲 简单组合逻辑多路选择器
  • Android Studio开发学习(五)———LinearLayout(线性布局)
  • 大模型(LLMs)RAG 版面分析------文本分块面
  • Web3游戏先锋 Big Time Studios 重磅推出 $OL 通证,赋能 Open Loot 游戏平台
  • Linux—ln(link files)命令使用方法(How to create links on Linux)
  • 学习日记_20241110_聚类方法(K-Means)
  • 解决Oracle DECODE函数字符串截断问题的深度剖析20241113
  • 开源模型应用落地-语音转文本-whisper模型-AIGC应用探索(二)