资源简介
参考https://blog.csdn.net/niu_88/article/details/97690318,
代码片段和文件信息
/*======================================================================*
* *
* map project *
* *
* Author: niu hongfang *
* Date: 2019.07.29 *
* Addr: Shen Zhen Guangdong *
* *
*=======================================================================*/
#include “map_project.h“
#include “math.h“
#define E_a 6378137.0f /* 地球纬度圈半径 m */
#define E_b 6356755.0f /* 地球经度圈半径 m */
/*
* note: coordinate ref init.
*
* @param1 ref
* @param2 latitude rad -pi/2~pi/2
* @param3 longitude rad -pi~pi
* @param4 h m
* @return init success/failure
*/
int coordinate_map_ref_init(coordinate_map_t *pref double lon double lat double h)
{
double e e_2;
double f;
double sin_2_lat;
double R_lat_circle;
double R_lon_circle;
double den_prime_vertical R_prime_vertical omiga_2;
if (lat > M_PI_F / 2 || lat < -M_PI_F / 2){
return -1;
}
f = (E_a - E_b) / E_a;
e_2 = f * (2.0 - f);
sin_2_lat = sin(lat);
omiga_2 = 1 - e_2 * sin_2_lat;
den_prime_vertical = sqrtf(omiga_2);
R_prime_vertical = E_a / den_prime_vertical;
R_lat_circle = (R_prime_vertical + h) * cosf(lat);
R_lon_circle = R_prime_vertical * (1 - e_2) / omiga_2 + h;
pref->h_lat = lat;
pref->h_lon = lon;
pref->dx_mue = R_lon_circle;
pref->dy_lambda = R_lat_circle;
pref->inited = 1;
return 0;
}
int coordinate_map_project(const coordinate_map_t *pref double lon double lat float *x float *y)
{
if (!pref->inited){
return -1;
}
*x = pref->dx_mue * lon;
*y = pref->dy_lambda * lat;
return 0;
}
int coordinate_map_reproject(const coordinate_map_t *pref float x float y double *lon double *lat)
{
if (!pref->inited){
return -1;
}
*lon = (double)x / pref->dx_mue;
*lat = (double)y / pref->dy_lambda;
return 0;
}
int coordinate_map_ref_distance(const coordinate_map_t *pref double lon double lat float *d_x float *d_y)
{
if (!pref->inited){
return -1;
}
double d_lon d_lat;
d_lon = lon - pref->h_lon;
d_lat = lat - pref->h_lat;
*d_x = d_lon*pref->dx_mue;
*d_y = d_lat*pref->dy_lambda;
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2243 2019-07-29 22:15 map_project.cpp
文件 708 2019-07-29 22:11 map_project.h
- 上一篇:基于DSP的设计正弦波信号发生器
- 下一篇:基于MIPS32位的ALU设计
相关资源
- 全国经纬度数据.xlsx
- gps模块51测试程序
- 坐标转换工具:GPS工具箱
- MCS-51单片机Gps接收程序
- GPS开发资料
- 地图投影、坐标转换、GPS高程拟合和
- gps的teqc工具
- 北京地区公园名称+地址+WGS84经纬度坐
- GPS 基线解算入门必备资料
- DGPS导航定位系统的设计实现
- GPS-INS.zip
- RINEX3.02数据提取
- 将GPS接收机原始数据转换成RINEX格式
- GPS原始数据解码为RINEX的方法
- 基于51单片机的GPS定位程序
- WinCE系统gps信号测试
- GPS整周模糊度解算的LAMBDA法及程序实
- 墨卡托投影与经纬度转换源代码及原
- 解析GPS数据并用LCD1602显示
- GPS开发关于如何写GPS程序
- 经纬度面积计算程序
- 基于GPS的车辆跟踪系统的设计与实现
- gpsr在ns2中的具体应用
- zw_INGPS.zip
- GPS导航系统仿真源代码+仿真文件+虚拟
- zw_TomGpsTest.zip
- 使用libexif为JPEG图片添加EXIF属性(新
- GPS软件接收机
- 全国2160个气象台站经纬度坐标
- 经纬度方位角计算.rar
评论
共有 条评论