使用Proj库进行大地坐标转空间坐标、投影坐标的一个示例
最近研究了proj库的使用,自己写了一个小demo,仅供参考。
void demoPROJ()
{
const char* wgs84 = "+proj=tmerc +ellps=WGS84 +lon_0=117e +x_0=500000 +y_0=0 +k=1.0";//+datum=WGS84 projPJ pj; if (!(pj = pj_init_plus(wgs84)))
{
exit(-1);
} projUV pt[2] = {{116.987, 39.2333}, {116.987654321, 39.453}}; for (int i = 0; i < 2; i++)
{
cout << "第" << i + 1 << "个点的转换:\n";
projUV pjPt;
pt[i].u *= DEG_TO_RAD;
pt[i].v *= DEG_TO_RAD;
pjPt = pj_fwd(pt[i], pj);
cout.setf(ios::fixed);
cout.precision(4);
cout.width(12);
cout << "\t经纬度转换为坐标\n\t";
cout << pjPt.u << "\t" << pjPt.v << endl; pjPt = pj_inv(pjPt, pj);
cout.setf(ios::fixed);
cout.precision(9);
cout.width(12);
cout << "\t坐标转换为经纬度\n\t";
cout << pjPt.u * RAD_TO_DEG << "\t" << pjPt.v * RAD_TO_DEG << endl;
}
cout << endl; double wgs84_a = 6378137.0;
double wgs84_e = 0.00669437999013; // 在这里e是第一偏心率的平方 projUVW pt3[2] = {{116.5164884833, 39.7663036028, 23.220}, {116.987654321, 39.453, 18}};
for (int i = 0; i < 2; i++)
{
cout << "第" << i + 3 << "个点的转换:\n";
pt3[i].u *= DEG_TO_RAD;
pt3[i].v *= DEG_TO_RAD; pj_geodetic_to_geocentric(wgs84_a, wgs84_e, 1, 1, &pt3[i].u, &pt3[i].v, &pt3[i].w);
cout.setf(ios::fixed);
cout.precision(4);
cout.width(12);
cout << "\t经纬度转换为空间坐标\n\t";
cout << pt3[i].u << "\t" << pt3[i].v << "\t" << pt3[i].w << endl; pj_geocentric_to_geodetic(wgs84_a, wgs84_e, 1, 1, &pt3[i].u, &pt3[i].v, &pt3[i].w);
cout.setf(ios::fixed);
cout.precision(9);
cout.width(12);
cout << "\t空间坐标转换为经纬度\n\t";
cout << pt3[i].u * RAD_TO_DEG << "\t" << pt3[i].v * RAD_TO_DEG << "\t" ;
cout.precision(4);
cout << pt3[i].w << endl;
} pj_free(pj);
}
使用Proj库进行大地坐标转空间坐标、投影坐标的一个示例的更多相关文章
- (转)ARCGIS中坐标转换及地理坐标、投影坐标的定义
原文地址:http://blog.sina.com.cn/s/blog_663d9a1f01017cyz.html 1.动态投影(ArcMap) 所谓动态投影指,ArcMap中的Data 的空间参考或 ...
- ArcGIS Engine 下投影坐标和经纬度坐标的相互转换
ArcGIS Engine 下投影坐标和经纬度坐标的相互转换 投影转经纬度 ); pPoint.Project(pSRF.CreateGeographicCoordinateSystem((int)e ...
- ArcEngine下投影坐标和经纬度坐标的相互转换
jojojojo2002 原文 ArcEngine下投影坐标和经纬度坐标的相互转换 投影转经纬度 private IPoint PRJtoGCS( double x, double y) { IPoi ...
- MySQL 实现将一个库表里面的数据实时更新到另一个库表里面
MySQL 实现将一个库表里面的数据实时更新到另一个库表里面 需求描述:MySQL 里面有很多的数据库,这些数据库里面都有同一种表结构的表 (tb_warn_log),这张表的数据是实时更新的,现在需 ...
- Git库搭建好之后,当要提交一个新的文件,需要做的是3个步骤
Git库搭建好之后,当要提交一个新的文件,需要做的是3个步骤 1.git add new.txt 2.git commit -m "add a new file" 3.git pu ...
- AE常用代码(标注要素、AE中画带箭头的线、如何获得投影坐标、参考坐标、投影方式、FeatureCount注意事项)
手上的电脑已经用了将近三年了,想入手一台Surface Pro,所以计划着把电脑上的资料整理下,部分资料打算发到博客上来,资料有同事.也有自己的.也有来自网络的,来源途径太多,也没法详细注明,请见谅! ...
- mysql数据库-初始化sql建库建表-关联查询投影问题
下面是一个简易商城的几张表的创建方式 drop database if exists shop ; create database shop CHARACTER SET 'utf8' COLLATE ...
- ArcGIS栅格影像怎么从WGS84地理坐标转成Xian80投影坐标
事情是这样的,我下载了一个WGS84坐标系的影像图,需要加载到Xian80投影坐标系下,所以需要对影像图进行坐标系的转换 1.因为涉及到两个参考椭球的问题,首先需要计算七参数,如何计算七参数,请参考我 ...
- python采用pika库使用rabbitmq总结,多篇笔记和示例
这一段时间学习了下rabbitmq,在学习的过程中,发现国内关于python采用pika库使用rabbitmq的资料很少,官网有这方面的资料,不过是都英文的.于是笔者结合自己的理解,就这方面内容写了一 ...
随机推荐
- 推荐13款javascript模板引擎
javaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于j ...
- Cesium原理篇:Property
之前主要是Entity的一个大概流程,本文主要介绍Cesium的属性,比如defineProperties,Property(ConstantProperty,CallbackProperty,Con ...
- WinServer2008R2 + IIS 7.5 + .NET4.0 经典模式 运行WebAPI程序报404错误的解决方案
在Windows Server 2008 R2系统下,IIS 7.5 + .NET Framework 4.0的运行环境,以经典模式(Classic Mode)部署一个用.NET 4.0编译的 Web ...
- 基础笔记(一):C#编程要点
前言 来源于手中日常摘录的资料和书籍,算是对看过的东西的总结,部分注有阅读心得,也有部分只提出大纲或结论.(备注:本篇文章中大部分要点需要有实际的开发经验,有助于阅读理解.) 目录 const ...
- ABP总体介绍
ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点, ...
- c++ map 使用
. 包含头文件: #include <map> 2. 构造函数: std::map<char,int> first; first[; first[; first[; first ...
- Scrapy开发指南
一.Scrapy简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. Scrapy基于事件驱动网络框架 Twis ...
- java中动态代理的实现
动态代理的实现 使用的模式:代理模式. 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.类似租房的中介. 两种动态代理: (1)jdk动态代理,jdk动态代理是由Java内部的反射机制 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 【工匠大道】Mac下Java开发环境配置简述
本文地址 原文地址 分享提纲: 1. 下载JDK1.7 2. 配置java_home 3 .安装tomcat 4 .安装eclipse或者myeclipse 5. mysql安装 破解版下载请参考M ...