【3D基础】坐标转换——地理坐标投影到平面

汤国安版GIS原理第二章重点 

1.常见投影方式

https://download.csdn.net/blog/column/9283203/83387473

  1. Web Mercator投影(Web Mercator Projection)

    • 优点
      • 在 Web 地图中广泛使用,易于显示并与在线地图服务集成。
      • 在较小的地图范围内,变形相对较小。
    • 缺点
      • 在极地区域存在严重的变形问题。
    • 用途
      • 在 Web 地图应用中使用,例如 Google Maps、OpenStreetMap 等。
  1. 兰伯特投影(Lambert Projection)

    • 优点
      • 保持了等角性和等距离性,适用于绘制大范围的地图。
      • 在航海和地图制图中广泛使用。
    • 缺点
      • 在极地区域存在较大的变形问题。
    • 用途
      • 在航海、地图制图和导航中使用,可以准确表示大圆航线和等距航线。
  2. 高斯-克吕格投影(Gauss-Krüger Projection)是一种用于平面坐标系的投影方法,通常用于大范围地图的制图。它是一种柱面等角投影,旨在在一定的纬度范围内保持角度的相对大小。以下是关于高斯-克吕格投影的一些特点:
  • 应用:高斯-克吕格投影广泛应用于各种地图制图和测量应用中,特别是在德国和其他欧洲国家,以及一些其他地区。

2.javascript中进行投影

在JavaScript中将球面坐标系中的经纬度点转换为笛卡尔坐标系中的二维坐标点通常涉及到球面投影的概念。一种常见的球面投影是经纬度坐标转换为平面坐标的墨卡托投影(Mercator Projection),这里简单介绍一下该投影的实现方式:

function latLngToCartesian(lat, lng) {var R = 6371000; // 地球半径,单位:米var x = R * lng * Math.PI / 180; // 经度转换为弧度并乘以半径var y = R * Math.log(Math.tan((90 + lat) * Math.PI / 360)); // 纬度转换为弧度并乘以半径,再取对数return { x: x, y: y };
}// 示例用法
var lat = 40.7128; // 纬度
var lng = -74.0060; // 经度
var cartesianPoint = latLngToCartesian(lat, lng);
console.log(cartesianPoint);

上述代码中的 latLngToCartesian 函数将经纬度坐标转换为笛卡尔坐标系中的二维坐标点。其中,lat 表示纬度,lng 表示经度,函数返回一个包含 xy 属性的对象,分别表示转换后的笛卡尔坐标系中的 x 和 y 坐标。

需要注意的是,墨卡托投影在纬度接近极端(北极或南极)时会产生失真,因此在某些应用场景下可能需要选择其他投影方式。

在JavaScript中,实现不同的地图投影方式涉及到一些复杂的数学计算。以下是几种常见的地图投影方式及其对应的 JavaScript 库:

  1. 墨卡托投影(Mercator Projection)

    • 该投影将地球表面的经纬度坐标转换为平面上的 x 和 y 坐标。
    • 可以使用 proj4js 库来实现墨卡托投影。
  2. Web Mercator投影(Web Mercator Projection)

    • 这是一种广泛用于 Web 地图的投影方式,Google Maps 和 OpenStreetMap 等地图服务都使用该投影。
    • 你可以使用 proj4js 或 leaflet 库中的内置函数来进行 Web Mercator 投影。
  3. 极坐标投影(Polar Coordinate Projection)

    • 用于处理极地区域的地图投影方式,通常在极地地区使用。
    • proj4js 支持一些极坐标投影,但一般情况下很少使用。
  4. 等距离投影(Equal-Distance Projection)

    • 保持了从地球表面到投影平面上点之间的距离不变,常见的包括 Lambert 等距离投影。
    • proj4js 支持许多等距离投影。
  5. 等面积投影(Equal-Area Projection)

    • 保持了地图上面积的比例与地球上面积的比例相同,通常用于制图和地图分析。
    • proj4js 和 d3-geo 都支持一些等面积投影。

根据你的具体需求和项目情况,选择合适的投影方式和相应的 JavaScript 库来实现地图投影转换

Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations. Originally a port of PROJ (then known as PROJ.4) and GCTCP C (Archive) it is a part of the MetaCRS group of projects. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/11279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux学习笔记】一篇文章彻底搞定 “Linux同步与互斥“ !

本章重点 1. 学会线程同步。 2 学会使用互斥量,条件变量,posix信号量,以及读写锁。 1、进程线程间的互斥相关背景概念 临界资源:多线程执行流共享的资源就叫做临界资源临界区:每个线程内部,访问临界资源的…

【多电压流程 Multivoltage Flow】- 5.特定工具使用建议(5.使用ICC II以及FC进行物理实现)

使用IC Compiler II和Fusion Compiler进行物理实现 在完成带有行站点、电源规划和I/O放置的floorplan之后,可以继续进行物理综合和实现。Fusion Compiler提供了广泛的功能,以执行设计的平面物理实现。 图67显示了物理实现流程的一般步骤以及流程的低功耗支持特性。 图67 I…

极度内卷,消费下行,AIGC如何成为普通人易变现好上手的新机会,这几种方法一定要尝试!

最近看到一个麦肯锡报告,说到2030年,AI会替代1亿多中国人的岗位。 暂且不说这个预测是否准确,但自从AI横空出世,确实给我们的生活带来了翻天覆地的变化,有人顺势起飞,有人被时代淘汰… 李开复也曾不止一次…

47-Qt控件详解:Buttons Containers1

一 QPushButton (命令按钮) #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPushButton>//引入QPushButton类对应的头文件class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWind…

如何评估大型语言模型(LLM)?

01 简介 Introduction 随着ChatGPT和其他大型语言模型&#xff08;LLMs&#xff09;的发布&#xff0c;可用模型数量大量增加&#xff0c;现在几乎每天都有新的LLMs发布。尽管如此&#xff0c;当下仍然没有一个通用的标准来评估这些大型语言模型的质量。本文将回顾现有的大型语…

振弦式表面式应变计有哪些功能优势

振弦式表面应变计是一种高精度的测量工具&#xff0c;专门用于测量材料表面的应变和位移。它通过监测材料表面的微小变化&#xff0c;帮助工程师获得关键的结构性能数据。振弦式表面应变计因其独特的功能优势&#xff0c;在众多领域尤其是在结构健康监测中&#xff0c;发挥着不…

卡尔曼滤波状态估计

clear all; close all; clc; %% 上面是调用卡尔曼滤波 % 定义状态维数和初始条件 n 3; % 状态维数 q 0.2; % 过程噪声标准差 r 0.15; % 测量噪声标准差 Q q * eye(n); …

Oracle如何收缩减小表空间大小

比如我们发现一个表空间占用比较大&#xff0c;但是空闲空间很大&#xff0c;想要减小表空间占用大小。查看表空间的情况 发现BETEST表空间占用大&#xff0c;但是剩余大小比较大&#xff0c;可以减小存储占用。 如果我们想减小到100MB&#xff0c;那么就登录其用户执行&#…

UDP怎么端口映射?

在网络通信中&#xff0c;TCP和UDP是两种常用的传输协议。UDP&#xff08;User Datagram Protocol&#xff09;是一种无连接的传输协议&#xff0c;相较于TCP协议来说&#xff0c;它更为轻量级且不可靠。UDP协议在某些场景下仍然有其独特的优势&#xff0c;尤其是在需要快速传输…

[每周一更]-(第96期):Rsync 用法教程:高效同步文件与目录

文章目录 一、引言二、rsync 基本概念三、介绍rsync 是什么&#xff1f;四、安装五、rsync 基本语法常见示例&#xff08;默认ssh协议&#xff09;&#xff1a; 六、常用选项1. -a 或 --archive2. -v 或 --verbose3. -z 或 --compress4. --delete5. --exclude6. --exclude-from…

hadoop yarm你知道吗?

一、概念 Hadoop YARN&#xff08;Yet Another Resource Negotiator&#xff09;是Hadoop 2.x版本中的一个重要组件&#xff0c;用于资源管理和作业调度。它是Hadoop的第二代资源管理器&#xff0c;取代了Hadoop 1.x版本中的MapReduce作业调度器。 通俗地理解它的作用有点像一…

如何通过外网访问内网服务器?

随着网络的普及和各行各业对互联网的应用需求增加&#xff0c;通过外网访问内网服务器的需求也越来越多。在传统的网络环境下&#xff0c;要实现外网访问内网服务器需要进行繁琐的端口映射设置&#xff0c;而且还会受到网络环境限制和数据安全问题的困扰。现在有了一种名为【天…

Springboot整合 Spring Cloud Alibaba Sentinel

1.Sentinel介绍 官方文档地址&#xff1a; https://sentinelguard.io/zh-cn/docs/introduction.html https://github.com/alibaba/Sentinel/wiki/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入…

定制聚四氟乙烯大圆桶50L

PTFE聚四氟乙烯圆桶是高性能化学实验器皿&#xff0c;适用于强酸强碱环境。具有化学稳定性、耐高温、良好密封、易清洗、环保安全等特点。 常规四氟桶-超大规格四氟桶均可定制&#xff0c;一体成型&#xff0c;保证密封&#xff0c;可长期保存高纯试剂。 产品特性 1.超纯实验…

Elastic 基于 RAG 的 AI 助手:利用 LLM 和私有 GitHub 问题分析应用程序问题

作者&#xff1a;来自 Elastic Bahubali Shetti 作为 SRE&#xff0c;分析应用程序比以往更加复杂。 你不仅必须确保应用程序以最佳状态运行以确保良好的客户体验&#xff0c;而且还必须了解某些情况下的内部工作原理以帮助排除故障。 分析基于生产的服务中的问题是一项团队运动…

回炉重造java----多线程

概念 注&#xff1a; main方法其实也是一个线程。在java中所以的线程都是同时启动的&#xff0c;至于什么时候&#xff0c;哪个先执行&#xff0c;完全看谁先得到CPU的资源。在java中&#xff0c;每次程序运行至少启动2个线程。一个是main线程&#xff0c;一个是垃圾收集(gc )线…

【Ubuntu】apt命令安装最新版本Nginx

目录 环境前言添加Nginx仓库步骤1、仓库公钥2、文本公钥转二进制GPG公钥&#xff08;可选&#xff09;3、添加apt软件源4、安装新版Nginx 参阅 环境 Ubuntu 22.04 前言 ubuntu官方apt软件仓库&#xff08;或者叫软件源&#xff09;的软件版本可能会比较旧&#xff0c;导致无…

AI算法-高数5-线性代数1-基本概念、向量

线性代数&#xff1a;主要研究1、张量>CV计算机视觉 2、研究张量的线性关系。 深度学习的表现之所以能够超过传统的机器学习算法离不开神经网络&#xff0c;然而神经网络最基本的数据结构就是向量和矩阵&#xff0c;神经网络的输入是向量&#xff0c;然后通过每个矩阵对向量…

使用 Flask Blueprint 实现模块化 Web 应用

文章目录 1. 什么是 Flask Blueprint&#xff1f;2. 为什么要使用 Flask Blueprint&#xff1f;3. 如何使用 Flask Blueprint&#xff1f;4. 在 Blueprint 之间进行通信5. 结合 Flask 插件系统进行功能拓展结语 当构建大型 Flask Web 应用时&#xff0c;保持代码的组织结构清晰…

遨游 JavaScript 对象星际:探索面向对象编程的深邃世界

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f4af;面向对象编程&#x1f517;1 什么是对象&#x1f517;2 什么是…