Merge projects.h into proj_internal.h
This commit is contained in:
202 files changed
+981
-1053
No files matched your search
+1
-1
@@ -39,7 +39,7 @@
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "geodesic.h"
|
||||
|
||||
#include "proj/common.hpp"
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ libproj_la_LDFLAGS = -no-undefined -version-info 14:1:1
|
||||
libproj_la_LIBADD = @SQLITE3_LDFLAGS@
|
||||
|
||||
libproj_la_SOURCES = \
|
||||
pj_list.h proj_internal.h proj_math.h projects.h \
|
||||
pj_list.h proj_internal.h proj_math.h \
|
||||
\
|
||||
iso19111/static.cpp \
|
||||
iso19111/util.cpp \
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#define ONE_TOL 1.00000000000001
|
||||
#define ATOL 1e-50
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
double adjlon (double lon) {
|
||||
/* Let lon slightly overshoot, to avoid spurious sign switching at the date line */
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
#include "proj_internal.h"
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/************************************************************************/
|
||||
/* pj_apply_gridshift() */
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
#include "proj_math.h"
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static int is_nodata(float value)
|
||||
{
|
||||
|
||||
+1
-1
@@ -81,7 +81,7 @@ Thomas Knudsen, thokn@sdfe.dk, 2016-05-25/2017-10-26
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_strtod.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "optargpm.h"
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@
|
||||
// PROJ include order is sensitive
|
||||
// clang-format off
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "emess.h"
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* generates 'T' option output */
|
||||
#define PJ_LIB__
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
/* <<<< Geodesic filter program >>>> */
|
||||
|
||||
#include "proj.h"
|
||||
# include "projects.h"
|
||||
# include "proj_internal.h"
|
||||
# include "geod_interface.h"
|
||||
# include "emess.h"
|
||||
# include <ctype.h>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "geod_interface.h"
|
||||
|
||||
void geod_ini(void) {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "geod_interface.h"
|
||||
#include "emess.h"
|
||||
|
||||
|
||||
+1
-1
@@ -117,7 +117,7 @@ Thomas Knudsen, thokn@sdfe.dk, 2017-10-01/2017-10-08
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
#include "proj_strtod.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#include "optargpm.h"
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
#define PJ_LIB__
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#define U_SEC_TO_RAD 4.848136811095359935899141023e-12
|
||||
|
||||
/************************************************************************/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* print row coefficients of Tseries structure */
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#define NF 20 /* length of final format string */
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* <<<< Cartographic projection filter program >>>> */
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <utility>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#include <proj/common.hpp>
|
||||
#include <proj/coordinateoperation.hpp>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
#include <stddef.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
# define P00 .33333333333333333333 /* 1 / 3 */
|
||||
# define P01 .17222222222222222222 /* 31 / 180 */
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
/* convert bivariate w Chebyshev series to w Power series */
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
/* basic support procedures */
|
||||
static void /* clear vector to zero */
|
||||
clear(PJ_UV *p, int n) { static const PJ_UV c = {0., 0.}; while (n--) *p++ = c; }
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* generate double bivariate Chebychev polynomial */
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
int
|
||||
bchgen(PJ_UV a, PJ_UV b, int nu, int nv, PJ_UV **f, PJ_UV(*func)(PJ_UV)) {
|
||||
int i, j, k;
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
/* procedures for evaluating Tseries */
|
||||
#include "proj.h"
|
||||
# include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
# define NEAR_ONE 1.00001
|
||||
static double ceval(struct PW_COEF *C, int n, PJ_UV w, PJ_UV w2) {
|
||||
double d=0, dd=0, vd, vdd, tmp, *c;
|
||||
|
||||
@@ -59,7 +59,7 @@ operation:
|
||||
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(axisswap, "Axis ordering");
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
#define PJ_LIB__
|
||||
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
|
||||
PROJ_HEAD(cart, "Geodetic/cartesian conversions");
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(geoc, "Geocentric Latitude");
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#define PJ_LIB__
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(geocent, "Geocentric") "\n\t";
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ Last update: 2017-05-16
|
||||
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(unitconvert, "Unit conversion");
|
||||
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@
|
||||
|
||||
#include "proj_experimental.h"
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static projCtx_t default_context;
|
||||
static volatile int default_context_initialized = 0;
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/* SEC_TO_RAD = Pi/180/3600 */
|
||||
#define SEC_TO_RAD 4.84813681109535993589914102357e-6
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@
|
||||
#include "proj.h"
|
||||
|
||||
#define PJ_DATUMS__
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/*
|
||||
* The ellipse code must match one from pj_ellps.c. The datum id should
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
int pj_deriv(PJ_LP lp, double h, const PJ *P, struct DERIVS *der) {
|
||||
PJ_XY t;
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static double proj_strtod(char *nptr, char **endptr);
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
|
||||
/* Prototypes of the pj_ellipsoid helper functions */
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
#include <stddef.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static const struct PJ_ELLPS
|
||||
pj_ellps[] = {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
/* For full ANSI compliance of global variable */
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
int pj_errno = 0;
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static PAFile stdio_fopen(projCtx ctx, const char *filename,
|
||||
const char *access);
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#define INPUT_UNITS P->left
|
||||
#define OUTPUT_UNITS P->right
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#define MAX_ITER 20
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static int gc_readentry(projCtx ctx, PAFile fid, PJ_GridCatalogEntry *entry);
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static PJ_GridCatalog *grid_catalog_list = nullptr;
|
||||
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/************************************************************************/
|
||||
/* swap_words() */
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static PJ_GRIDINFO *grid_list = nullptr;
|
||||
#define PJ_MAX_PATH_LENGTH 1024
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
|
||||
/**************************************************************************************/
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static int cache_count = 0;
|
||||
static int cache_alloc = 0;
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@
|
||||
|
||||
#include "geodesic.h"
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
|
||||
enum pj_io_units pj_left (PJ *P) {
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#define INPUT_UNITS P->right
|
||||
#define OUTPUT_UNITS P->left
|
||||
|
||||
@@ -50,10 +50,9 @@
|
||||
|
||||
// PROJ include order is sensitive
|
||||
// clang-format off
|
||||
#include "proj_internal.h"
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_experimental.h"
|
||||
#include "projects.h"
|
||||
// clang-format on
|
||||
#include "proj_constants.h"
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
// PROJ include order is sensitive
|
||||
// clang-format off
|
||||
#include "proj.h"
|
||||
#include "projects.h" // M_PI
|
||||
#include "proj_internal.h" // M_PI
|
||||
// clang-format on
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
// PROJ include order is sensitive
|
||||
// clang-format off
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_api.h"
|
||||
// clang-format on
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
// PROJ include order is sensitive
|
||||
// clang-format off
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
// clang-format on
|
||||
|
||||
#include <sqlite3.h>
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@
|
||||
// PROJ include order is sensitive
|
||||
// clang-format off
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_api.h"
|
||||
// clang-format on
|
||||
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@
|
||||
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "org_proj4_PJ.h"
|
||||
#include <jni.h>
|
||||
|
||||
|
||||
+1
-1
@@ -200,7 +200,7 @@ SET(SRC_LIBPROJ_ISO19111
|
||||
)
|
||||
|
||||
SET(SRC_LIBPROJ_CORE
|
||||
pj_list.h proj_internal.h proj_math.h projects.h
|
||||
pj_list.h proj_internal.h proj_math.h
|
||||
aasincos.cpp adjlon.cpp bch2bps.cpp bchgen.cpp
|
||||
biveval.cpp dmstor.cpp mk_cheby.cpp auth.cpp
|
||||
deriv.cpp ell_set.cpp ellps.cpp errno.cpp
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
#include "proj.h"
|
||||
|
||||
#define USE_PJ_LIST_H 1
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
|
||||
/* Generate prototypes for projection functions */
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/************************************************************************/
|
||||
/* pj_stderr_logger() */
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@
|
||||
#include <new>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/**********************************************************************/
|
||||
void *pj_malloc(size_t size) {
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
static void /* sum coefficients less than res */
|
||||
eval(PJ_UV **w, int nu, int nv, double res, PJ_UV *resid) {
|
||||
int i, j;
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/* meridional distance for ellipsoid and inverse
|
||||
** 8th degree - accurate to < 1e-5 meters when used in conjunction
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
/* determine constant small m */
|
||||
#include <math.h>
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
double
|
||||
pj_msfn(double sinphi, double cosphi, double es) {
|
||||
return (cosphi / sqrt (1. - es * sinphi * sinphi));
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@
|
||||
#include "proj.h"
|
||||
#ifndef _WIN32
|
||||
#include "proj_config.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#else
|
||||
#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
|
||||
#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
|
||||
#define MAX_ITERATIONS 10
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/************************************************************************/
|
||||
/* swap_words() */
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PJ_LP nad_intr(PJ_LP t, struct CTABLE *ct) {
|
||||
PJ_LP val, frct;
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static const char *(*pj_finder)(const char *) = nullptr;
|
||||
static int path_count = 0;
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
/* create parameter list entry */
|
||||
paralist *pj_mkparam(const char *str) {
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
static const double TOL = 1.0e-10;
|
||||
static const int N_ITER = 15;
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ Thomas Knudsen, thokn@sdfe.dk, 2016-05-20
|
||||
#include "geodesic.h"
|
||||
#include "proj.h"
|
||||
#include "proj_internal.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(pipeline, "Transformation pipeline manager");
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#define LINE_LEN 72
|
||||
static int
|
||||
|
||||
+3
-6
@@ -113,12 +113,11 @@
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef PROJ_H
|
||||
#define PROJ_H
|
||||
|
||||
#include <stddef.h> /* For size_t */
|
||||
|
||||
|
||||
#ifdef PROJECTS_H
|
||||
#error proj.h must be included before projects.h
|
||||
#endif
|
||||
#ifdef PROJ_API_H
|
||||
#error proj.h must be included before proj_api.h
|
||||
#endif
|
||||
@@ -127,8 +126,6 @@
|
||||
#include "proj_symbol_rename.h"
|
||||
#endif
|
||||
|
||||
#ifndef PROJ_H
|
||||
#define PROJ_H
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@@ -26,14 +26,15 @@
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
#include "proj.h"
|
||||
|
||||
#ifndef PROJ_EXPERIMENTAL_H
|
||||
#define PROJ_EXPERIMENTAL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "proj.h"
|
||||
|
||||
/**
|
||||
* \file proj_experimental.h
|
||||
*
|
||||
|
||||
+777
-16
@@ -26,20 +26,45 @@
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#ifndef _USE_MATH_DEFINES
|
||||
#define _USE_MATH_DEFINES
|
||||
#endif
|
||||
#ifndef PROJ_INTERNAL_H
|
||||
#define PROJ_INTERNAL_H
|
||||
|
||||
#ifndef __cplusplus
|
||||
#error "proj_internal.h can only be included from a C++ file"
|
||||
#endif
|
||||
|
||||
#include <math.h> /* For M_PI */
|
||||
#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
|
||||
#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# ifndef _CRT_SECURE_NO_DEPRECATE
|
||||
# define _CRT_SECURE_NO_DEPRECATE
|
||||
# endif
|
||||
# ifndef _CRT_NONSTDC_NO_DEPRECATE
|
||||
# define _CRT_NONSTDC_NO_DEPRECATE
|
||||
# endif
|
||||
/* enable predefined math constants M_* for MS Visual Studio workaround */
|
||||
# ifndef _USE_MATH_DEFINES
|
||||
# define _USE_MATH_DEFINES
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* standard inclusions */
|
||||
#include <limits.h>
|
||||
#include <math.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "proj/common.hpp"
|
||||
#include "proj/coordinateoperation.hpp"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "proj.h"
|
||||
|
||||
#ifdef PROJECTS_H
|
||||
#error proj_internal.h must be included before projects.h
|
||||
#endif
|
||||
#ifdef PROJ_API_H
|
||||
#error proj_internal.h must be included before proj_api.h
|
||||
#endif
|
||||
@@ -48,12 +73,6 @@
|
||||
#include "proj_symbol_rename.h"
|
||||
#endif
|
||||
|
||||
#ifndef PROJ_INTERNAL_H
|
||||
#define PROJ_INTERNAL_H
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define STATIC_ASSERT(COND) ((void)sizeof(char[(COND) ? 1 : -1]))
|
||||
|
||||
#if !defined(HAVE_C99_MATH)
|
||||
@@ -70,6 +89,89 @@ extern "C" {
|
||||
/* Maximum latitudinal overshoot accepted */
|
||||
#define PJ_EPS_LAT 1e-12
|
||||
|
||||
#define C_NAMESPACE extern "C"
|
||||
#define C_NAMESPACE_VAR extern "C"
|
||||
|
||||
#ifndef NULL
|
||||
# define NULL 0
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
# define FALSE 0
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
# define TRUE 1
|
||||
#endif
|
||||
|
||||
#ifndef MAX
|
||||
# define MIN(a,b) ((a<b) ? a : b)
|
||||
# define MAX(a,b) ((a>b) ? a : b)
|
||||
#endif
|
||||
|
||||
#ifndef ABS
|
||||
# define ABS(x) ((x<0) ? (-1*(x)) : x)
|
||||
#endif
|
||||
|
||||
#if INT_MAX == 2147483647
|
||||
typedef int pj_int32;
|
||||
#elif LONG_MAX == 2147483647
|
||||
typedef long pj_int32;
|
||||
#else
|
||||
#warning It seems no 32-bit integer type is available
|
||||
#endif
|
||||
|
||||
/* maximum path/filename */
|
||||
#ifndef MAX_PATH_FILENAME
|
||||
#define MAX_PATH_FILENAME 1024
|
||||
#endif
|
||||
|
||||
/* If we still haven't got M_PI*, we rely on our own defines.
|
||||
* For example, this is necessary when compiling with gcc and
|
||||
* the -ansi flag.
|
||||
*/
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.14159265358979323846
|
||||
#define M_PI_2 1.57079632679489661923
|
||||
#define M_PI_4 0.78539816339744830962
|
||||
#define M_2_PI 0.63661977236758134308
|
||||
#endif
|
||||
|
||||
/* M_SQRT2 might be missing */
|
||||
#ifndef M_SQRT2
|
||||
#define M_SQRT2 1.41421356237309504880
|
||||
#endif
|
||||
|
||||
/* some more useful math constants and aliases */
|
||||
#define M_FORTPI M_PI_4 /* pi/4 */
|
||||
#define M_HALFPI M_PI_2 /* pi/2 */
|
||||
#define M_PI_HALFPI 4.71238898038468985769 /* 1.5*pi */
|
||||
#define M_TWOPI 6.28318530717958647693 /* 2*pi */
|
||||
#define M_TWO_D_PI M_2_PI /* 2/pi */
|
||||
#define M_TWOPI_HALFPI 7.85398163397448309616 /* 2.5*pi */
|
||||
|
||||
|
||||
/* maximum tag id length for +init and default files */
|
||||
#ifndef ID_TAG_MAX
|
||||
#define ID_TAG_MAX 50
|
||||
#endif
|
||||
|
||||
/* Use WIN32 as a standard windows 32 bit declaration */
|
||||
#if defined(_WIN32) && !defined(WIN32)
|
||||
# define WIN32
|
||||
#endif
|
||||
|
||||
#if defined(_WINDOWS) && !defined(WIN32)
|
||||
# define WIN32
|
||||
#endif
|
||||
|
||||
/* directory delimiter for DOS support */
|
||||
#ifdef WIN32
|
||||
#define DIR_CHAR '\\'
|
||||
#else
|
||||
#define DIR_CHAR '/'
|
||||
#endif
|
||||
|
||||
|
||||
/* This enum is also conditionally defined in projects.h - but enums cannot */
|
||||
/* be forward declared and we need it here for the pj_left/right prototypes */
|
||||
@@ -132,8 +234,667 @@ void proj_fileapi_set (PJ *P, void *fileapi);
|
||||
const char * const *proj_get_searchpath(void);
|
||||
int proj_get_path_count(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
typedef struct { double r, i; } COMPLEX;
|
||||
|
||||
/* Forward declarations and typedefs for stuff needed inside the PJ object */
|
||||
struct PJconsts;
|
||||
|
||||
union PJ_COORD;
|
||||
struct geod_geodesic;
|
||||
struct ARG_list;
|
||||
struct PJ_REGION_S;
|
||||
typedef struct PJ_REGION_S PJ_Region;
|
||||
typedef struct ARG_list paralist; /* parameter list */
|
||||
#ifndef PROJ_INTERNAL_H
|
||||
enum pj_io_units {
|
||||
PJ_IO_UNITS_WHATEVER = 0, /* Doesn't matter (or depends on pipeline neighbours) */
|
||||
PJ_IO_UNITS_CLASSIC = 1, /* Scaled meters (right), projected system */
|
||||
PJ_IO_UNITS_PROJECTED = 2, /* Meters, projected system */
|
||||
PJ_IO_UNITS_CARTESIAN = 3, /* Meters, 3D cartesian system */
|
||||
PJ_IO_UNITS_ANGULAR = 4 /* Radians */
|
||||
};
|
||||
#endif
|
||||
#ifndef PROJ_H
|
||||
typedef struct PJconsts PJ; /* the PJ object herself */
|
||||
typedef union PJ_COORD PJ_COORD;
|
||||
#endif
|
||||
|
||||
struct PJ_REGION_S {
|
||||
double ll_long; /* lower left corner coordinates (radians) */
|
||||
double ll_lat;
|
||||
double ur_long; /* upper right corner coordinates (radians) */
|
||||
double ur_lat;
|
||||
};
|
||||
|
||||
struct PJ_AREA {
|
||||
int bbox_set;
|
||||
double west_lon_degree;
|
||||
double south_lat_degree;
|
||||
double east_lon_degree;
|
||||
double north_lat_degree;
|
||||
};
|
||||
|
||||
struct projCtx_t;
|
||||
typedef struct projCtx_t projCtx_t;
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Some function types that are especially useful when working with PJs
|
||||
|
||||
******************************************************************************
|
||||
|
||||
PJ_CONSTRUCTOR:
|
||||
|
||||
A function taking a pointer-to-PJ as arg, and returning a pointer-to-PJ.
|
||||
Historically called twice: First with a 0 argument, to allocate memory,
|
||||
second with the first return value as argument, for actual setup.
|
||||
|
||||
PJ_DESTRUCTOR:
|
||||
|
||||
A function taking a pointer-to-PJ and an integer as args, then first
|
||||
handling the deallocation of the PJ, afterwards handing the integer over
|
||||
to the error reporting subsystem, and finally returning a null pointer in
|
||||
support of the "return free (P)" (aka "get the hell out of here") idiom.
|
||||
|
||||
PJ_OPERATOR:
|
||||
|
||||
A function taking a PJ_COORD and a pointer-to-PJ as args, applying the
|
||||
PJ to the PJ_COORD, and returning the resulting PJ_COORD.
|
||||
|
||||
*****************************************************************************/
|
||||
typedef PJ *(* PJ_CONSTRUCTOR) (PJ *);
|
||||
typedef PJ *(* PJ_DESTRUCTOR) (PJ *, int);
|
||||
typedef PJ_COORD (* PJ_OPERATOR) (PJ_COORD, PJ *);
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
/* datum_type values */
|
||||
#define PJD_UNKNOWN 0
|
||||
#define PJD_3PARAM 1
|
||||
#define PJD_7PARAM 2
|
||||
#define PJD_GRIDSHIFT 3
|
||||
#define PJD_WGS84 4 /* WGS84 (or anything considered equivalent) */
|
||||
|
||||
|
||||
/* base projection data structure */
|
||||
struct PJconsts {
|
||||
|
||||
/*************************************************************************************
|
||||
|
||||
G E N E R A L P A R A M E T E R S T R U C T
|
||||
|
||||
**************************************************************************************
|
||||
|
||||
TODO: Need some description here - especially about the thread context...
|
||||
This is the struct behind the PJ typedef
|
||||
|
||||
**************************************************************************************/
|
||||
|
||||
projCtx_t *ctx = nullptr;
|
||||
const char *descr = nullptr; /* From pj_list.h or individual PJ_*.c file */
|
||||
paralist *params = nullptr; /* Parameter list */
|
||||
char *def_full = nullptr; /* Full textual definition (usually 0 - set by proj_pj_info) */
|
||||
char *def_size = nullptr; /* Shape and size parameters extracted from params */
|
||||
char *def_shape = nullptr;
|
||||
char *def_spherification = nullptr;
|
||||
char *def_ellps = nullptr;
|
||||
|
||||
struct geod_geodesic *geod = nullptr; /* For geodesic computations */
|
||||
void *opaque = nullptr; /* Projection specific parameters, Defined in PJ_*.c */
|
||||
int inverted = 0; /* Tell high level API functions to swap inv/fwd */
|
||||
|
||||
|
||||
/*************************************************************************************
|
||||
|
||||
F U N C T I O N P O I N T E R S
|
||||
|
||||
**************************************************************************************
|
||||
|
||||
For projection xxx, these are pointers to functions in the corresponding
|
||||
PJ_xxx.c file.
|
||||
|
||||
pj_init() delegates the setup of these to pj_projection_specific_setup_xxx(),
|
||||
a name which is currently hidden behind the magic curtain of the PROJECTION
|
||||
macro.
|
||||
|
||||
**************************************************************************************/
|
||||
|
||||
|
||||
PJ_XY (*fwd)(PJ_LP, PJ *) = nullptr;
|
||||
PJ_LP (*inv)(PJ_XY, PJ *) = nullptr;
|
||||
PJ_XYZ (*fwd3d)(PJ_LPZ, PJ *) = nullptr;
|
||||
PJ_LPZ (*inv3d)(PJ_XYZ, PJ *) = nullptr;
|
||||
PJ_OPERATOR fwd4d = nullptr;
|
||||
PJ_OPERATOR inv4d = nullptr;
|
||||
|
||||
PJ_DESTRUCTOR destructor = nullptr;
|
||||
|
||||
|
||||
/*************************************************************************************
|
||||
|
||||
E L L I P S O I D P A R A M E T E R S
|
||||
|
||||
**************************************************************************************
|
||||
|
||||
Despite YAGNI, we add a large number of ellipsoidal shape parameters, which
|
||||
are not yet set up in pj_init. They are, however, inexpensive to compute,
|
||||
compared to the overall time taken for setting up the complex PJ object
|
||||
(cf. e.g. https://en.wikipedia.org/wiki/Angular_eccentricity).
|
||||
|
||||
But during single point projections it will often be a useful thing to have
|
||||
these readily available without having to recompute at every pj_fwd / pj_inv
|
||||
call.
|
||||
|
||||
With this wide selection, we should be ready for quite a number of geodetic
|
||||
algorithms, without having to incur further ABI breakage.
|
||||
|
||||
**************************************************************************************/
|
||||
|
||||
/* The linear parameters */
|
||||
|
||||
double a = 0.0; /* semimajor axis (radius if eccentricity==0) */
|
||||
double b = 0.0; /* semiminor axis */
|
||||
double ra = 0.0; /* 1/a */
|
||||
double rb = 0.0; /* 1/b */
|
||||
|
||||
/* The eccentricities */
|
||||
|
||||
double alpha = 0.0; /* angular eccentricity */
|
||||
double e = 0.0; /* first eccentricity */
|
||||
double es = 0.0; /* first eccentricity squared */
|
||||
double e2 = 0.0; /* second eccentricity */
|
||||
double e2s = 0.0; /* second eccentricity squared */
|
||||
double e3 = 0.0; /* third eccentricity */
|
||||
double e3s = 0.0; /* third eccentricity squared */
|
||||
double one_es = 0.0; /* 1 - e^2 */
|
||||
double rone_es = 0.0; /* 1/one_es */
|
||||
|
||||
|
||||
/* The flattenings */
|
||||
double f = 0.0; /* first flattening */
|
||||
double f2 = 0.0; /* second flattening */
|
||||
double n = 0.0; /* third flattening */
|
||||
double rf = 0.0; /* 1/f */
|
||||
double rf2 = 0.0; /* 1/f2 */
|
||||
double rn = 0.0; /* 1/n */
|
||||
|
||||
/* This one's for GRS80 */
|
||||
double J = 0.0; /* "Dynamic form factor" */
|
||||
|
||||
double es_orig = 0.0; /* es and a before any +proj related adjustment */
|
||||
double a_orig = 0.0;
|
||||
|
||||
|
||||
/*************************************************************************************
|
||||
|
||||
C O O R D I N A T E H A N D L I N G
|
||||
|
||||
**************************************************************************************/
|
||||
|
||||
int over = 0; /* Over-range flag */
|
||||
int geoc = 0; /* Geocentric latitude flag */
|
||||
int is_latlong = 0; /* proj=latlong ... not really a projection at all */
|
||||
int is_geocent = 0; /* proj=geocent ... not really a projection at all */
|
||||
int is_pipeline = 0; /* 1 if PJ represents a pipeline */
|
||||
int need_ellps = 0; /* 0 for operations that are purely cartesian */
|
||||
int skip_fwd_prepare = 0;
|
||||
int skip_fwd_finalize = 0;
|
||||
int skip_inv_prepare = 0;
|
||||
int skip_inv_finalize = 0;
|
||||
|
||||
enum pj_io_units left = PJ_IO_UNITS_WHATEVER; /* Flags for input/output coordinate types */
|
||||
enum pj_io_units right = PJ_IO_UNITS_WHATEVER;
|
||||
|
||||
/* These PJs are used for implementing cs2cs style coordinate handling in the 4D API */
|
||||
PJ *axisswap = nullptr;
|
||||
PJ *cart = nullptr;
|
||||
PJ *cart_wgs84 = nullptr;
|
||||
PJ *helmert = nullptr;
|
||||
PJ *hgridshift = nullptr;
|
||||
PJ *vgridshift = nullptr;
|
||||
|
||||
|
||||
/*************************************************************************************
|
||||
|
||||
C A R T O G R A P H I C O F F S E T S
|
||||
|
||||
**************************************************************************************/
|
||||
|
||||
double lam0 = 0.0; /* central meridian */
|
||||
double phi0 = 0.0; /* central parallel */
|
||||
double x0 = 0.0; /* false easting */
|
||||
double y0 = 0.0; /* false northing */
|
||||
double z0 = 0.0; /* height origin */
|
||||
double t0 = 0.0; /* time origin */
|
||||
|
||||
|
||||
/*************************************************************************************
|
||||
|
||||
S C A L I N G
|
||||
|
||||
**************************************************************************************/
|
||||
|
||||
double k0 = 0.0; /* General scaling factor - e.g. the 0.9996 of UTM */
|
||||
double to_meter = 0.0, fr_meter = 0.0; /* Plane coordinate scaling. Internal unit [m] */
|
||||
double vto_meter = 0.0, vfr_meter = 0.0; /* Vertical scaling. Internal unit [m] */
|
||||
|
||||
|
||||
/*************************************************************************************
|
||||
|
||||
D A T U M S A N D H E I G H T S Y S T E M S
|
||||
|
||||
**************************************************************************************
|
||||
|
||||
It may be possible, and meaningful, to move the list parts of this up to the
|
||||
PJ_CONTEXT level.
|
||||
|
||||
**************************************************************************************/
|
||||
|
||||
int datum_type = PJD_UNKNOWN; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */
|
||||
double datum_params[7] = {0,0,0,0,0,0,0}; /* Parameters for 3PARAM and 7PARAM */
|
||||
struct _pj_gi **gridlist = nullptr; /* TODO: Description needed */
|
||||
int gridlist_count = 0;
|
||||
|
||||
int has_geoid_vgrids = 0; /* TODO: Description needed */
|
||||
struct _pj_gi **vgridlist_geoid = nullptr; /* TODO: Description needed */
|
||||
int vgridlist_geoid_count = 0;
|
||||
|
||||
double from_greenwich = 0.0; /* prime meridian offset (in radians) */
|
||||
double long_wrap_center = 0.0; /* 0.0 for -180 to 180, actually in radians*/
|
||||
int is_long_wrap_set = 0;
|
||||
char axis[4] = {0,0,0,0}; /* Axis order, pj_transform/pj_adjust_axis */
|
||||
|
||||
/* New Datum Shift Grid Catalogs */
|
||||
char *catalog_name = nullptr;
|
||||
struct _PJ_GridCatalog *catalog = nullptr;
|
||||
|
||||
double datum_date = 0.0; /* TODO: Description needed */
|
||||
|
||||
struct _pj_gi *last_before_grid = nullptr; /* TODO: Description needed */
|
||||
PJ_Region last_before_region = {0,0,0,0}; /* TODO: Description needed */
|
||||
double last_before_date = 0.0; /* TODO: Description needed */
|
||||
|
||||
struct _pj_gi *last_after_grid = nullptr; /* TODO: Description needed */
|
||||
PJ_Region last_after_region = {0,0,0,0}; /* TODO: Description needed */
|
||||
double last_after_date = 0.0; /* TODO: Description needed */
|
||||
|
||||
/*************************************************************************************
|
||||
ISO-19111 interface
|
||||
**************************************************************************************/
|
||||
|
||||
NS_PROJ::common::IdentifiedObjectPtr iso_obj{};
|
||||
|
||||
// cached results
|
||||
mutable std::string lastWKT{};
|
||||
mutable std::string lastPROJString{};
|
||||
mutable bool gridsNeededAsked = false;
|
||||
mutable std::vector<NS_PROJ::operation::GridDescription> gridsNeeded{};
|
||||
|
||||
/*************************************************************************************
|
||||
|
||||
E N D O F G E N E R A L P A R A M E T E R S T R U C T
|
||||
|
||||
**************************************************************************************/
|
||||
|
||||
PJconsts();
|
||||
PJconsts(const PJconsts &) = delete;
|
||||
PJconsts &operator=(const PJconsts &) = delete;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/* Parameter list (a copy of the +proj=... etc. parameters) */
|
||||
struct ARG_list {
|
||||
paralist *next;
|
||||
char used;
|
||||
#if defined(__GNUC__) && __GNUC__ >= 8
|
||||
char param[]; /* variable-length member */
|
||||
/* Safer to use [] for gcc 8. See https://github.com/OSGeo/proj.4/pull/1087 */
|
||||
/* and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86914 */
|
||||
#else
|
||||
char param[1]; /* variable-length member */
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
typedef union { double f; int i; char *s; } PROJVALUE;
|
||||
|
||||
|
||||
struct PJ_DATUMS {
|
||||
const char *id; /* datum keyword */
|
||||
const char *defn; /* ie. "to_wgs84=..." */
|
||||
const char *ellipse_id; /* ie from ellipse table */
|
||||
const char *comments; /* EPSG code, etc */
|
||||
};
|
||||
|
||||
|
||||
struct DERIVS {
|
||||
double x_l, x_p; /* derivatives of x for lambda-phi */
|
||||
double y_l, y_p; /* derivatives of y for lambda-phi */
|
||||
};
|
||||
|
||||
struct FACTORS {
|
||||
struct DERIVS der;
|
||||
double h, k; /* meridional, parallel scales */
|
||||
double omega, thetap; /* angular distortion, theta prime */
|
||||
double conv; /* convergence */
|
||||
double s; /* areal scale factor */
|
||||
double a, b; /* max-min scale error */
|
||||
int code; /* always 0 */
|
||||
};
|
||||
|
||||
/* library errors */
|
||||
#define PJD_ERR_NO_ARGS -1
|
||||
#define PJD_ERR_NO_OPTION_IN_INIT_FILE -2
|
||||
#define PJD_ERR_NO_COLON_IN_INIT_STRING -3
|
||||
#define PJD_ERR_PROJ_NOT_NAMED -4
|
||||
#define PJD_ERR_UNKNOWN_PROJECTION_ID -5
|
||||
#define PJD_ERR_ECCENTRICITY_IS_ONE -6
|
||||
#define PJD_ERR_UNKNOWN_UNIT_ID -7
|
||||
#define PJD_ERR_INVALID_BOOLEAN_PARAM -8
|
||||
#define PJD_ERR_UNKNOWN_ELLP_PARAM -9
|
||||
#define PJD_ERR_REV_FLATTENING_IS_ZERO -10
|
||||
#define PJD_ERR_REF_RAD_LARGER_THAN_90 -11
|
||||
#define PJD_ERR_ES_LESS_THAN_ZERO -12
|
||||
#define PJD_ERR_MAJOR_AXIS_NOT_GIVEN -13
|
||||
#define PJD_ERR_LAT_OR_LON_EXCEED_LIMIT -14
|
||||
#define PJD_ERR_INVALID_X_OR_Y -15
|
||||
#define PJD_ERR_WRONG_FORMAT_DMS_VALUE -16
|
||||
#define PJD_ERR_NON_CONV_INV_MERI_DIST -17
|
||||
#define PJD_ERR_NON_CON_INV_PHI2 -18
|
||||
#define PJD_ERR_ACOS_ASIN_ARG_TOO_LARGE -19
|
||||
#define PJD_ERR_TOLERANCE_CONDITION -20
|
||||
#define PJD_ERR_CONIC_LAT_EQUAL -21
|
||||
#define PJD_ERR_LAT_LARGER_THAN_90 -22
|
||||
#define PJD_ERR_LAT1_IS_ZERO -23
|
||||
#define PJD_ERR_LAT_TS_LARGER_THAN_90 -24
|
||||
#define PJD_ERR_CONTROL_POINT_NO_DIST -25
|
||||
#define PJD_ERR_NO_ROTATION_PROJ -26
|
||||
#define PJD_ERR_W_OR_M_ZERO_OR_LESS -27
|
||||
#define PJD_ERR_LSAT_NOT_IN_RANGE -28
|
||||
#define PJD_ERR_PATH_NOT_IN_RANGE -29
|
||||
#define PJD_ERR_H_LESS_THAN_ZERO -30
|
||||
#define PJD_ERR_K_LESS_THAN_ZERO -31
|
||||
#define PJD_ERR_LAT_1_OR_2_ZERO_OR_90 -32
|
||||
#define PJD_ERR_LAT_0_OR_ALPHA_EQ_90 -33
|
||||
#define PJD_ERR_ELLIPSOID_USE_REQUIRED -34
|
||||
#define PJD_ERR_INVALID_UTM_ZONE -35
|
||||
#define PJD_ERR_TCHEBY_VAL_OUT_OF_RANGE -36
|
||||
#define PJD_ERR_FAILED_TO_FIND_PROJ -37
|
||||
#define PJD_ERR_FAILED_TO_LOAD_GRID -38
|
||||
#define PJD_ERR_INVALID_M_OR_N -39
|
||||
#define PJD_ERR_N_OUT_OF_RANGE -40
|
||||
#define PJD_ERR_LAT_1_2_UNSPECIFIED -41
|
||||
#define PJD_ERR_ABS_LAT1_EQ_ABS_LAT2 -42
|
||||
#define PJD_ERR_LAT_0_HALF_PI_FROM_MEAN -43
|
||||
#define PJD_ERR_UNPARSEABLE_CS_DEF -44
|
||||
#define PJD_ERR_GEOCENTRIC -45
|
||||
#define PJD_ERR_UNKNOWN_PRIME_MERIDIAN -46
|
||||
#define PJD_ERR_AXIS -47
|
||||
#define PJD_ERR_GRID_AREA -48
|
||||
#define PJD_ERR_INVALID_SWEEP_AXIS -49
|
||||
#define PJD_ERR_MALFORMED_PIPELINE -50
|
||||
#define PJD_ERR_UNIT_FACTOR_LESS_THAN_0 -51
|
||||
#define PJD_ERR_INVALID_SCALE -52
|
||||
#define PJD_ERR_NON_CONVERGENT -53
|
||||
#define PJD_ERR_MISSING_ARGS -54
|
||||
#define PJD_ERR_LAT_0_IS_ZERO -55
|
||||
#define PJD_ERR_ELLIPSOIDAL_UNSUPPORTED -56
|
||||
#define PJD_ERR_TOO_MANY_INITS -57
|
||||
#define PJD_ERR_INVALID_ARG -58
|
||||
#define PJD_ERR_INCONSISTENT_UNIT -59
|
||||
/* NOTE: Remember to update pj_strerrno.c and transient_error in */
|
||||
/* pj_transform.c when adding new value */
|
||||
|
||||
struct projFileAPI_t;
|
||||
|
||||
struct projCppContext;
|
||||
|
||||
/* proj thread context */
|
||||
struct projCtx_t {
|
||||
int last_errno;
|
||||
int debug_level;
|
||||
void (*logger)(void *, int, const char *);
|
||||
void *app_data;
|
||||
struct projFileAPI_t *fileapi;
|
||||
struct projCppContext* cpp_context; /* internal context for C++ code */
|
||||
int use_proj4_init_rules; /* -1 = unknown, 0 = no, 1 = yes */
|
||||
int epsg_file_exists; /* -1 = unknown, 0 = no, 1 = yes */
|
||||
};
|
||||
|
||||
/* classic public API */
|
||||
#include "proj_api.h"
|
||||
|
||||
|
||||
/* Generate pj_list external or make list from include file */
|
||||
#ifndef PJ_DATUMS__
|
||||
C_NAMESPACE_VAR struct PJ_DATUMS pj_datums[];
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef PJ_LIB__
|
||||
#define PROJ_HEAD(name, desc) static const char des_##name [] = desc
|
||||
|
||||
#define OPERATION(name, NEED_ELPJ_LPS) \
|
||||
\
|
||||
pj_projection_specific_setup_##name (PJ *P); \
|
||||
C_NAMESPACE PJ *pj_##name (PJ *P); \
|
||||
\
|
||||
C_NAMESPACE_VAR const char * const pj_s_##name = des_##name; \
|
||||
\
|
||||
C_NAMESPACE PJ *pj_##name (PJ *P) { \
|
||||
if (P) \
|
||||
return pj_projection_specific_setup_##name (P); \
|
||||
P = pj_new(); \
|
||||
if (nullptr==P) \
|
||||
return nullptr; \
|
||||
P->descr = des_##name; \
|
||||
P->need_ellps = NEED_ELPJ_LPS; \
|
||||
P->left = PJ_IO_UNITS_ANGULAR; \
|
||||
P->right = PJ_IO_UNITS_CLASSIC; \
|
||||
return P; \
|
||||
} \
|
||||
\
|
||||
PJ *pj_projection_specific_setup_##name (PJ *P)
|
||||
|
||||
/* In ISO19000 lingo, an operation is either a conversion or a transformation */
|
||||
#define CONVERSION(name, need_ellps) OPERATION (name, need_ellps)
|
||||
#define TRANSFORMATION(name, need_ellps) OPERATION (name, need_ellps)
|
||||
|
||||
/* In PROJ.4 a projection is a conversion taking angular input and giving scaled linear output */
|
||||
#define PROJECTION(name) CONVERSION (name, 1)
|
||||
|
||||
#endif /* def PJ_LIB__ */
|
||||
|
||||
|
||||
#define MAX_TAB_ID 80
|
||||
typedef struct { float lam, phi; } FLP;
|
||||
typedef struct { pj_int32 lam, phi; } ILP;
|
||||
|
||||
struct CTABLE {
|
||||
char id[MAX_TAB_ID]; /* ascii info */
|
||||
PJ_LP ll; /* lower left corner coordinates */
|
||||
PJ_LP del; /* size of cells */
|
||||
ILP lim; /* limits of conversion matrix */
|
||||
FLP *cvs; /* conversion matrix */
|
||||
};
|
||||
|
||||
typedef struct _pj_gi {
|
||||
char *gridname; /* identifying name of grid, eg "conus" or ntv2_0.gsb */
|
||||
char *filename; /* full path to filename */
|
||||
|
||||
const char *format; /* format of this grid, ie "ctable", "ntv1",
|
||||
"ntv2" or "missing". */
|
||||
|
||||
long grid_offset; /* offset in file, for delayed loading */
|
||||
int must_swap; /* only for NTv2 */
|
||||
|
||||
struct CTABLE *ct;
|
||||
|
||||
struct _pj_gi *next;
|
||||
struct _pj_gi *child;
|
||||
} PJ_GRIDINFO;
|
||||
|
||||
typedef struct {
|
||||
PJ_Region region;
|
||||
int priority; /* higher used before lower */
|
||||
double date; /* year.fraction */
|
||||
char *definition; /* usually the gridname */
|
||||
|
||||
PJ_GRIDINFO *gridinfo;
|
||||
int available; /* 0=unknown, 1=true, -1=false */
|
||||
} PJ_GridCatalogEntry;
|
||||
|
||||
typedef struct _PJ_GridCatalog {
|
||||
char *catalog_name;
|
||||
|
||||
PJ_Region region; /* maximum extent of catalog data */
|
||||
|
||||
int entry_count;
|
||||
PJ_GridCatalogEntry *entries;
|
||||
|
||||
struct _PJ_GridCatalog *next;
|
||||
} PJ_GridCatalog;
|
||||
|
||||
/* procedure prototypes */
|
||||
double PROJ_DLL dmstor(const char *, char **);
|
||||
double dmstor_ctx(projCtx ctx, const char *, char **);
|
||||
void PROJ_DLL set_rtodms(int, int);
|
||||
char PROJ_DLL *rtodms(char *, double, int, int);
|
||||
double PROJ_DLL adjlon(double);
|
||||
double aacos(projCtx,double), aasin(projCtx,double), asqrt(double), aatan2(double, double);
|
||||
|
||||
PROJVALUE PROJ_DLL pj_param(projCtx ctx, paralist *, const char *);
|
||||
paralist PROJ_DLL *pj_param_exists (paralist *list, const char *parameter);
|
||||
paralist PROJ_DLL *pj_mkparam(const char *);
|
||||
paralist *pj_mkparam_ws (const char *str);
|
||||
|
||||
|
||||
int PROJ_DLL pj_ell_set(projCtx ctx, paralist *, double *, double *);
|
||||
int pj_datum_set(projCtx,paralist *, PJ *);
|
||||
int pj_angular_units_set(paralist *, PJ *);
|
||||
|
||||
paralist *pj_clone_paralist( const paralist* );
|
||||
paralist *pj_search_initcache( const char *filekey );
|
||||
void pj_insert_initcache( const char *filekey, const paralist *list);
|
||||
paralist *pj_expand_init(projCtx ctx, paralist *init);
|
||||
|
||||
void *pj_dealloc_params (projCtx ctx, paralist *start, int errlev);
|
||||
|
||||
|
||||
double *pj_enfn(double);
|
||||
double pj_mlfn(double, double, double, double *);
|
||||
double pj_inv_mlfn(projCtx, double, double, double *);
|
||||
double pj_qsfn(double, double, double);
|
||||
double pj_tsfn(double, double, double);
|
||||
double pj_msfn(double, double, double);
|
||||
double PROJ_DLL pj_phi2(projCtx, double, double);
|
||||
double pj_qsfn_(double, PJ *);
|
||||
double *pj_authset(double);
|
||||
double pj_authlat(double, double *);
|
||||
|
||||
COMPLEX pj_zpoly1(COMPLEX, const COMPLEX *, int);
|
||||
COMPLEX pj_zpolyd1(COMPLEX, const COMPLEX *, int, COMPLEX *);
|
||||
|
||||
int pj_deriv(PJ_LP, double, const PJ *, struct DERIVS *);
|
||||
int pj_factors(PJ_LP, const PJ *, double, struct FACTORS *);
|
||||
|
||||
struct PW_COEF { /* row coefficient structure */
|
||||
int m; /* number of c coefficients (=0 for none) */
|
||||
double *c; /* power coefficients */
|
||||
};
|
||||
|
||||
/* Approximation structures and procedures */
|
||||
typedef struct { /* Chebyshev or Power series structure */
|
||||
PJ_UV a, b; /* power series range for evaluation */
|
||||
/* or Chebyshev argument shift/scaling */
|
||||
struct PW_COEF *cu, *cv;
|
||||
int mu, mv; /* maximum cu and cv index (+1 for count) */
|
||||
int power; /* != 0 if power series, else Chebyshev */
|
||||
} Tseries;
|
||||
|
||||
Tseries PROJ_DLL *mk_cheby(PJ_UV, PJ_UV, double, PJ_UV *, PJ_UV (*)(PJ_UV), int, int, int);
|
||||
PJ_UV bpseval(PJ_UV, Tseries *);
|
||||
PJ_UV bcheval(PJ_UV, Tseries *);
|
||||
PJ_UV biveval(PJ_UV, Tseries *);
|
||||
void *vector1(int, int);
|
||||
void **vector2(int, int, int);
|
||||
void freev2(void **v, int nrows);
|
||||
int bchgen(PJ_UV, PJ_UV, int, int, PJ_UV **, PJ_UV(*)(PJ_UV));
|
||||
int bch2bps(PJ_UV, PJ_UV, PJ_UV **, int, int);
|
||||
|
||||
/* nadcon related protos */
|
||||
PJ_LP nad_intr(PJ_LP, struct CTABLE *);
|
||||
PJ_LP nad_cvt(PJ_LP, int, struct CTABLE *);
|
||||
struct CTABLE *nad_init(projCtx ctx, char *);
|
||||
struct CTABLE *nad_ctable_init( projCtx ctx, PAFile fid );
|
||||
int nad_ctable_load( projCtx ctx, struct CTABLE *, PAFile fid );
|
||||
struct CTABLE *nad_ctable2_init( projCtx ctx, PAFile fid );
|
||||
int nad_ctable2_load( projCtx ctx, struct CTABLE *, PAFile fid );
|
||||
void nad_free(struct CTABLE *);
|
||||
|
||||
/* higher level handling of datum grid shift files */
|
||||
|
||||
int pj_apply_vgridshift( PJ *defn, const char *listname,
|
||||
PJ_GRIDINFO ***gridlist_p,
|
||||
int *gridlist_count_p,
|
||||
int inverse,
|
||||
long point_count, int point_offset,
|
||||
double *x, double *y, double *z );
|
||||
int pj_apply_gridshift_2( PJ *defn, int inverse,
|
||||
long point_count, int point_offset,
|
||||
double *x, double *y, double *z );
|
||||
int pj_apply_gridshift_3( projCtx ctx,
|
||||
PJ_GRIDINFO **gridlist, int gridlist_count,
|
||||
int inverse, long point_count, int point_offset,
|
||||
double *x, double *y, double *z );
|
||||
|
||||
PJ_GRIDINFO **pj_gridlist_from_nadgrids( projCtx, const char *, int * );
|
||||
void PROJ_DLL pj_deallocate_grids();
|
||||
|
||||
PJ_GRIDINFO *pj_gridinfo_init( projCtx, const char * );
|
||||
int pj_gridinfo_load( projCtx, PJ_GRIDINFO * );
|
||||
void pj_gridinfo_free( projCtx, PJ_GRIDINFO * );
|
||||
|
||||
PJ_GridCatalog *pj_gc_findcatalog( projCtx, const char * );
|
||||
PJ_GridCatalog *pj_gc_readcatalog( projCtx, const char * );
|
||||
void pj_gc_unloadall( projCtx );
|
||||
int pj_gc_apply_gridshift( PJ *defn, int inverse,
|
||||
long point_count, int point_offset,
|
||||
double *x, double *y, double *z );
|
||||
int pj_gc_apply_gridshift( PJ *defn, int inverse,
|
||||
long point_count, int point_offset,
|
||||
double *x, double *y, double *z );
|
||||
|
||||
PJ_GRIDINFO *pj_gc_findgrid( projCtx ctx,
|
||||
PJ_GridCatalog *catalog, int after,
|
||||
PJ_LP location, double date,
|
||||
PJ_Region *optional_region,
|
||||
double *grid_date );
|
||||
|
||||
double pj_gc_parsedate( projCtx, const char * );
|
||||
|
||||
void *proj_mdist_ini(double);
|
||||
double proj_mdist(double, double, double, const void *);
|
||||
double proj_inv_mdist(projCtx ctx, double, const void *);
|
||||
void *pj_gauss_ini(double, double, double *,double *);
|
||||
PJ_LP pj_gauss(projCtx, PJ_LP, const void *);
|
||||
PJ_LP pj_inv_gauss(projCtx, PJ_LP, const void *);
|
||||
|
||||
struct PJ_DATUMS PROJ_DLL *pj_get_datums_ref( void );
|
||||
|
||||
PJ *pj_new(void);
|
||||
PJ *pj_default_destructor (PJ *P, int errlev);
|
||||
|
||||
double PROJ_DLL pj_atof( const char* nptr );
|
||||
double pj_strtod( const char *nptr, char **endptr );
|
||||
void pj_freeup_plain (PJ *P);
|
||||
|
||||
projPJ pj_init_ctx_with_allow_init_epsg( projCtx ctx, int argc, char **argv, int allow_init_epsg );
|
||||
|
||||
|
||||
#endif /* ndef PROJ_INTERNAL_H */
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
#define MAX_ITER 20
|
||||
#define TOL 1e-14
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#define PJ_LIB__
|
||||
#include "proj.h"
|
||||
#include <errno.h>
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "geodesic.h"
|
||||
#include "proj.h"
|
||||
#include <errno.h>
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
|
||||
namespace { // anonymous namespace
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#define PJ_LIB__
|
||||
#include "proj.h"
|
||||
#include <errno.h>
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(airy, "Airy") "\n\tMisc Sph, no inv\n\tno_cut lat_b=";
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
|
||||
namespace { // anonymous namespace
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(august, "August Epicycloidal") "\n\tMisc Sph, no inv";
|
||||
#define M 1.333333333333333
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
|
||||
namespace { // anonymous namespace
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
#include "proj_internal.h"
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(bertin1953, "Bertin 1953")
|
||||
"\n\tMisc Sph no inv.";
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
|
||||
PROJ_HEAD(bipc, "Bipolar conic of western hemisphere") "\n\tConic Sph";
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(boggs, "Boggs Eumorphic") "\n\tPCyl, no inv, Sph";
|
||||
# define NITER 20
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#define PJ_LIB__
|
||||
#include <errno.h>
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_api.h"
|
||||
|
||||
PROJ_HEAD(calcofi,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(cass, "Cassini") "\n\tCyl, Sph&Ell";
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(cc, "Central Cylindrical") "\n\tCyl, Sph";
|
||||
#define EPS10 1.e-10
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#define PJ_LIB__
|
||||
#include <errno.h>
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
|
||||
#define EPS10 1e-10
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
namespace { // anonymous namespace
|
||||
struct pj_opaque {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
typedef struct { double r, Az; } VECT;
|
||||
namespace { // anonymous namespace
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(collg, "Collignon") "\n\tPCyl, Sph";
|
||||
#define FXC 1.12837916709551257390
|
||||
|
||||
@@ -11,7 +11,7 @@ Port to PROJ.4 by Bojan Savric, 4 April 2016
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(comill, "Compact Miller") "\n\tCyl, Sph";
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(crast, "Craster Parabolic (Putnins P4)") "\n\tPCyl, Sph";
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(denoy, "Denoyer Semi-Elliptical") "\n\tPCyl, no inv, Sph";
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(eck1, "Eckert I") "\n\tPCyl, Sph";
|
||||
#define FC 0.92131773192356127802
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(eck2, "Eckert II") "\n\tPCyl, Sph";
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(eck3, "Eckert III") "\n\tPCyl, Sph";
|
||||
PROJ_HEAD(putp1, "Putnins P1") "\n\tPCyl, Sph";
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(eck4, "Eckert IV") "\n\tPCyl, Sph";
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(eck5, "Eckert V") "\n\tPCyl, Sph";
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
namespace { // anonymous namespace
|
||||
struct pj_opaque {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
#include "proj_math.h"
|
||||
|
||||
namespace { // anonymous namespace
|
||||
|
||||
@@ -17,7 +17,7 @@ Added ellipsoidal equations by Bojan Savric, 22 August 2018
|
||||
#include <math.h>
|
||||
|
||||
#include "proj.h"
|
||||
#include "projects.h"
|
||||
#include "proj_internal.h"
|
||||
|
||||
PROJ_HEAD(eqearth, "Equal Earth") "\n\tPCyl, Sph&Ell";
|
||||
|
||||
|
||||
Loaded 100 of 202 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user