pktools
2.6.7
Processing Kernel for geospatial data
src
algorithms
Egcs.h
1
/**********************************************************************
2
Egcs.h: Conversions from and to european grid coding system
3
Copyright (C) 2008-2012 Pieter Kempeneers
4
5
This file is part of pktools
6
7
pktools is free software: you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation, either version 3 of the License, or
10
(at your option) any later version.
11
12
pktools is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with pktools. If not, see <http://www.gnu.org/licenses/>.
19
***********************************************************************/
20
#include <math.h>
21
#include <string>
22
23
#ifndef _EGCS_H_
24
#define _EGCS_H_
25
26
class
Egcs
27
{
28
public
:
29
Egcs
();
30
Egcs
(
unsigned
short
level);
31
/* Egcs(unsigned short level); */
32
~
Egcs
();
33
unsigned
short
cell2level(
const
std::string& cellCode)
const
;
34
std::string geo2cell(
double
x,
double
y)
const
;
35
double
getSize()
const
{
return
getBaseSize()*pow(2.0,(m_level-19)%3);};
36
void
setLevel(
unsigned
short
level){m_level=level;};
37
unsigned
short
getLevel()
const
{
return
m_level;};
38
unsigned
short
res2level(
double
resolution)
const
;
39
double
getResolution()
const
;
40
void
force2grid(
double
& ulx,
double
& uly,
double
& lrx,
double
&lry)
const
;
41
void
cell2bb(
const
std::string& cellCode,
int
&ulx,
int
&uly,
int
&lrx,
int
&lry)
const
;
42
void
cell2mid(
const
std::string& cellCode,
double
& midX,
double
& midY)
const
;
43
private
:
44
int
getBaseSize()
const
{
return
pow(10.0,(m_level+1)/3);};
45
unsigned
short
m_level;
46
// level square scheme example
47
// 19 1000km xy 32
48
// 18 500km xy-q 32-A
49
// 17 250km xy-qq 32-AB
50
// 16 100km xxyy 3320
51
// 5 25m xxxxxyyyyy-qq 3346720658-DC
52
// 1 1m xxxxxxxyyyyyyy 33467652065889
53
};
54
#endif // _EGCS_H_
55
Egcs
Definition:
Egcs.h:26
Generated on Tue Feb 23 2021 08:50:20 for pktools by
1.8.13