使用PROJ将空间坐标点从WGS84坐标系转换到UTM坐标系
PROJ简介
PROJ是一种通用坐标转换软件,用于将地理空间坐标从一个坐标参考系(coordinate reference system, CRS)转换为另一个坐标参考系。
PROJ官方网站:https://proj.org/
macOS系统可以直接使用homebrew安装:
brew install proj
系统和PROJ版本
系统:macOS Big Sur
PROJ版本:9.0.0
c++实现
wgs84_to_utm32651.cpp
#include <stdio.h>
#include <proj.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>using namespace std;int main (int argc, char **argv) {// 变量定义PJ_CONTEXT *C;PJ *P;PJ *norm;PJ_COORD a, b;ifstream input(argv[1]);ofstream output(argv[2]);string line;double timestamp, latitude, longtitude, height;// 创建一个上下文对象C = proj_context_create();// 创建转换对象// 第二个参数"EPSG:4326"是源坐标系EPSG代码,第三个参数是目标坐标系EPSG代码P = proj_create_crs_to_crs (C, "EPSG:4326", "EPSG:32651", NULL);if (0 == P) {fprintf(stderr, "Failed to create transformation object.\n");return 1;}norm = proj_normalize_for_visualization(C, P);if (0 == norm) {fprintf(stderr, "Failed to normalize transformation object.\n");return 1;}proj_destroy(P);P = norm;// 从文件中一行一行读取数据,并进行坐标系的转换while (getline(input, line)){istringstream record(line);record >> timestamp >> latitude >> longtitude >> height;// 初始化PJ_COORD对象a = proj_coord(longtitude, latitude, height, 0);// 将wgs84坐标系下的地理空间坐标 a 转换到utm32651坐标系下b = proj_trans(P, PJ_FWD, a);// 输出到文件中output.precision(15);output << b.enu.e << " " << b.enu.n << " " << b.enu.u << endl;}// 销毁所创建的对象proj_destroy(P);proj_context_destroy(C);return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)project( wgs84_to_utm32651 )find_package(PROJ CONFIG REQUIRED)add_executable ( wgs84_to_utm32651 src/wgs84_to_utm32651.cpp)
target_link_libraries( wgs84_to_utm32651 PROJ::proj )
编译运行即可。
使用QGIS验证
转换之后的坐标可以使用QGIS软件进行验证,如果坐标点都能够重叠在一起,说明转换正确。
QGIS官方网站:https://www.qgis.org/
使用PROJ将空间坐标点从WGS84坐标系转换到UTM坐标系相关推荐
- GPS坐标系转换(标准坐标系WGS84转GCJ-02火星坐标系)
GPS坐标系转换(标准坐标系WGS84转GCJ-02火星坐标系) 坐标系简介 WGS-84 标准坐标系 GCJ-02 - 国测局坐标 BD-09 - 百度坐标系 干货前的说明 WGS84转GCJ-02 ...
- 【Java代码】坐标系说明+WGS84\GCJ02\BD09坐标系转换工具+Java坐标系转换及验证源代码分享(粘贴可用)
1. 坐标系说明 开发地图应用服务时,一定会接触到各种坐标系,而保证坐标系的正确与合理是一切数据分析的前提,总的来说,坐标系可以分为两大类:地理坐标系GCS(Geographic Coordinate ...
- neu坐标系和xyz坐标系转换_ArcGIS投影坐标系下坐标转换成地理坐标系经纬度
一.背景 最近由于项目原因,需要用ArcGIS进行坐标转换 由于提供的管网位置数据是坐标系是:"CGCS2000_3_Degree_GK_CM_117E "下excel表格数据,处 ...
- ArcMap中的各种GIS文件的变换(img转tif,tif坐标系转换,shp坐标系转换)
文章目录 img转tif tif转换坐标系 shp转换坐标系 img转tif 1. 选中打开的img并右击,依次选择Data->Export Data. 2. 然后在弹出窗口中填写,tif保存路 ...
- proj4经纬度bl转换xy_多种坐标系之间的转换之Proj.NET_转载
Proj.NET (http://www.codeplex.com/ProjNET)是一个.NET下开源的空间参照和投影引擎,遵循OGC相关标准.负责人(Coordinators )是D_Guidi ...
- wgs84坐标系转换工具_ArcGIS中不同坐标系之间的转换
用户经常会遇到这样的情况,现有的数据坐标不符合要求,为应对需求,不得不为数据转换坐标系.很多人认为转换坐标系只是单纯的使用工具箱中的[投影]工具,那就大错特错了.有很多情况下,只使用[投影]工具并不能 ...
- python坐标系转换_GNSS学习笔记-坐标转换
GNSS 坐标转换 GNSS计算主要涉及三个坐标系,地心地固坐标系,地理坐标系和站心坐标系.这里主要介绍一下三个坐标的含义和转换公式. 地心地固坐标系如图X,Y,Z表示 (ECEF坐标系),以地心O为 ...
- OpenGL坐标系转化之投影坐标系
坐标系转换 OpenGL中物体建立在各自的局部坐标系[模型坐标系]中,然后经过平移旋转变换到[世界坐标系]中,然后根据视角的位置和方向转换到[视角坐标系]中,然后根据投影关系,是正交投影还是透视投影, ...
- 相机与图像--小孔成像模型与坐标系--坐标系转换
利用图像序列进行三维重建的过程,相当于把一张张由很多像素组成的二维图像还原到三维空间中的一个过程.通过了解整个投影的过程,就可以很容易理解如何利用图像进行三维重建,以及三维重建中的关键步骤是什么.该小 ...
- python坐标系转换函数_python WGS84和ECEF坐标的转换
地心地固坐标系(Earth-Centered, Earth-Fixed,ECEF),简称地心坐标系. 地理坐标系统(Geographic Coordinate System,GCS)1,坐标系是地心坐 ...
最新文章
- java domain层_java框架中的controller层、dao层、domain层、service层、view层
- 实例讲解如何把表格变量传递到存储过程中
- 快看Sample代码,速学Swift语言(3)-运算符
- LeetCode 421. 数组中两个数的最大异或值(Trie树)
- LeetCode 125. Valid Palindrome
- java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出
- MySQl Window Function Concepts
- 端口扩展器技术让网络交换焕然一新
- antd-vue中的form表单label标签for导致点击文字触发输入框解决方案
- Laravel 5无法打开所需的bootstrap /../ vendor / autoload.php
- 《智能优化算法及其MATLAB实现》书籍出版啦
- OJ 上常见错误提示
- banner图/轮播图----html
- 考出面试者基本功的 10 个简单编程题
- magicbook的linux是哪个版本,MagicBook 2019 linux版来了!
- 如何修改游戏服务器数据包,游戏数据包的定义
- 用PS把人物皮肤处理的质感又通透
- HDU - 1546 Idiomatic Phrases Game
- linux俄罗斯方块源程序,《俄罗斯方块游戏》项目实作【附源码】
- LaTex 最狠的网站 嘎嘎狠