Skip to content

Commit 62caf22

Browse files
committed
Merge pull request #9 from mapcode-foundation/dev
Ready for release 2.0.2
2 parents 340b1f4 + 3ed22b0 commit 62caf22

File tree

9 files changed

+3238
-1764
lines changed

9 files changed

+3238
-1764
lines changed

CMakeLists.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
cmake_minimum_required(VERSION 2.8.4)
1+
cmake_minimum_required(VERSION 3.2)
22
project(mapcode_cpp)
33

4-
set(CMAKE_CXX_FLAGS
5-
"${CMAKE_CXX_FLAGS} -std=c++11")
4+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
65

76
set(SOURCE_FILES
8-
example/mapcode.cpp)
7+
mapcodelib/basics.h
8+
mapcodelib/dividemaps.h
9+
mapcodelib/mapcode_countrynames.h
10+
mapcodelib/mapcode_countrynames_short.h
11+
mapcodelib/mapcoder.c
12+
mapcodelib/mapcoder.h
13+
utility/mapcode.cpp)
914

10-
add_executable(mapcode ${SOURCE_FILES})
15+
add_executable(mapcode_cpp ${SOURCE_FILES})

README.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Copyright (C) 2014-2015 Stichting Mapcode Foundation (http://www.mapcode.com)
77
**Online documentation can be found at: http://mapcode-foundation.github.io/mapcode-cpp/**
88

99

10-
## The C/C++ Library: `mapcodelib/`
10+
# The C/C++ Library: `mapcodelib/`
1111

1212
The directory 'mapcodelib' contains the files:
1313

@@ -29,7 +29,7 @@ In that case, basics.h will state a version number of the for:
2929
where "xxx" states the geographical limitation.
3030

3131

32-
## A Real-Life Example, The 'mapcode' Codec Tool: `utility/`
32+
# A Real-Life Example, The 'mapcode' Codec Tool: `utility/`
3333

3434
The directory 'utility' contains a Mapcode encoding/decoding utility, as an example
3535
of how to use the library.
@@ -48,8 +48,30 @@ This tool provides a rather extensive command-line interface to encode and
4848
decode Mapcodes.
4949

5050

51-
## Release Notes
51+
# Release Notes
5252

53+
* 2.0.2
54+
55+
Speed-up of encoding (4 times faster than 2.0.1).
56+
57+
Added optional `mapcode_countrynames.h`, with the English short names, formal names,
58+
and name variants of all territories.
59+
60+
Added optional `mapcode_countrynames_short.h` with only the short English names and
61+
name variants.
62+
63+
Stricter processing of high-precision letters (now fails on illegal high-precision
64+
letters, which includes the letter Z).
65+
66+
Fix to allow illegal letters "i" and "o" in Hindi, Bengali, Tibetan and Gurmukhi
67+
(so they can later be interpreted as digits 1 and 0).
68+
69+
Fix for some unrecognized aliases in `convertTerritoryIsoNameToCode()`.
70+
71+
* 2.0.1
72+
73+
Removed compiler warnings.
74+
5375
* 2.0.0
5476

5577
Support for high-precision mapcodes, with up to 8 character extensions (up to 10 micron accuracy).
@@ -127,7 +149,7 @@ decode Mapcodes.
127149

128150
Initial release to the public domain.
129151

130-
## License
152+
# License
131153

132154
Licensed under the Apache License, Version 2.0 (the "License");
133155
you may not use this file except in compliance with the License.

mapcodelib/basics.h

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,12 @@
1414
* limitations under the License.
1515
*/
1616

17-
#define UWORD unsigned short int // 2-byte unsigned integer
18-
19-
#define mapcode_cversion "2.0.1"
17+
#define mapcode_dataversion "2.0" // coords 2.0.2
2018
#define MAXWIDE 10
2119
#define BASEX 31
2220
#define MAXFITLONG 6
23-
#define XSIDE3 168
24-
#define YSIDE3 176
2521

26-
#define ALIASES "2UK=2UT,2CG=2CT,1GU=GUM,1UM=UMI,1VI=VIR,1PR=PRI,1AS=ASM,1MP=MNP,4CX=CXR,4CC=CCK,4NF=NFK,4HM=HMD,COL=5CL,5ME=5MX,MEX=5MX,5TM=TAM,5AG=AGU,5BC=BCN,5BS=BCS,5CM=CAM,5CS=CHP,5CH=CHH,5CO=COA,5DF=DIF,5DG=DUR,5GT=GUA,5GR=GRO,5HG=HID,5JA=JAL,5MI=MIC,5MO=MOR,5NA=NAY,5NL=NLE,5OA=OAX,5PB=PUE,5QE=QUE,5QR=ROO,5SL=SLP,5SI=SIN,5SO=SON,5TB=TAB,5TL=TLA,5VE=VER,5YU=YUC,5ZA=ZAC,811=8BJ,812=8TJ,813=8HE,814=8SX,815=8NM,821=8LN,822=8JL,823=8HL,831=8SH,832=8JS,833=8ZJ,834=8AH,835=8FJ,836=8JX,837=8SD,841=8HA,842=8HB,843=8HN,844=8GD,845=8GX,846=8HI,850=8CQ,851=8SC,852=8GZ,853=8YN,854=8XZ,861=8SN,862=8GS,863=8QH,864=8NX,865=8XJ,871=TWN,891=HKG,892=MAC,8TW=TWN,8HK=HKG,8MC=MAC,BEL=7BE,KIR=7KI,PRI=7PO,CHE=7CH,KHM=7KM,PER=7PM,TAM=7TT,0US=USA,0AU=AUS,0RU=RUS,0CN=CHN,TAA=SHN,ASC=SHN,DGA=IOT,WAK=MHL,JTN=UMI,MID=1HI,2OD=2OR,"
22+
#define ALIASES "2UK=2UT,2CG=2CT,1GU=GUM,1UM=UMI,1VI=VIR,1AS=ASM,1MP=MNP,4CX=CXR,4CC=CCK,4NF=NFK,4HM=HMD,COL=5CL,5ME=5MX,MEX=5MX,5AG=AGU,5BC=BCN,5BS=BCS,5CM=CAM,5CS=CHP,5CH=CHH,5CO=COA,5DF=DIF,5DG=DUR,5GT=GUA,5GR=GRO,5HG=HID,5JA=JAL,5MI=MIC,5MO=MOR,5NA=NAY,5NL=NLE,5OA=OAX,5PB=PUE,5QE=QUE,5QR=ROO,5SL=SLP,5SI=SIN,5SO=SON,5TB=TAB,5TL=TLA,5VE=VER,5YU=YUC,5ZA=ZAC,811=8BJ,812=8TJ,813=8HE,814=8SX,815=8NM,821=8LN,822=8JL,823=8HL,831=8SH,832=8JS,833=8ZJ,834=8AH,835=8FJ,836=8JX,837=8SD,841=8HA,842=8HB,843=8HN,844=8GD,845=8GX,846=8HI,850=8CQ,851=8SC,852=8GZ,853=8YN,854=8XZ,861=8SN,862=8GS,863=8QH,864=8NX,865=8XJ,871=TWN,891=HKG,892=MAC,8TW=TWN,8HK=HKG,8MC=MAC,BEL=7BE,KIR=7KI,PRI=7PO,CHE=7CH,KHM=7KM,PER=7PM,TAM=7TT,0US=USA,0AU=AUS,0RU=RUS,0CN=CHN,TAA=SHN,ASC=SHN,DGA=IOT,WAK=MHL,JTN=UMI,MID=1HI,1PR=PRI,5TM=TAM,TAM=TAM,2OD=2OR,"
2723

2824
#define MAX_CCODE 533 // total number of areas (i.e. recognised iso codes) in this database
2925
static const char *entity_iso = ""
@@ -84,37 +80,31 @@ static const char *entity_iso = ""
8480

8581
#define usa_from 343
8682
#define usa_upto 393
87-
#define ccode_usa 410
8883
#define ind_from 271
8984
#define ind_upto 306
9085
#define ccode_ind 407
9186
#define can_from 394
9287
#define can_upto 406
93-
#define ccode_can 495
9488
#define aus_from 307
9589
#define aus_upto 315
96-
#define ccode_aus 408
9790
#define mex_from 233
9891
#define mex_upto 264
9992
#define ccode_mex 411
10093
#define bra_from 316
10194
#define bra_upto 342
102-
#define ccode_bra 409
10395
#define chn_from 497
10496
#define chn_upto 527
105-
#define ccode_chn 528
10697
#define rus_from 412
10798
#define rus_upto 494
108-
#define ccode_rus 496
109-
#define ccode_ata 531
11099
#define ccode_earth 532
111100

112101
#define parents3 "USA,IND,CAN,AUS,MEX,BRA,RUS,CHN,"
113102
#define parents2 "US,IN,CA,AU,MX,BR,RU,CN,"
103+
static const int parentnr[9] = {-1,410,407,495,408,411,409,496,528};
114104

115105

116106

117-
static const UWORD xdivider19[172] = {
107+
static const int xdivider19[172] = {
118108
360, 360, 360, 360, 360, 360, 361, 361, 361, 361,
119109
362, 362, 362, 363, 363, 363, 364, 364, 365, 366,
120110
366, 367, 367, 368, 369, 370, 370, 371, 372, 373,
@@ -135,11 +125,11 @@ static const UWORD xdivider19[172] = {
135125
23681,59485
136126
};
137127

138-
static const long nc[MAXFITLONG+1] = { 1, 31, 961, 29791, 923521, 28629151, 887503681 };
128+
static const int nc[MAXFITLONG+1] = { 1, 31, 961, 29791, 923521, 28629151, 887503681 };
139129

140-
static const long xside[MAXWIDE] = { 0, 5, 31, 168, 961, 168*31, 29791, 165869, 923521, 5141947};
130+
static const int xside[MAXWIDE] = { 0, 5, 31, 168, 961, 168*31, 29791, 165869, 923521, 5141947};
141131

142-
static const long yside[MAXWIDE] = { 0, 6, 31, 176, 961, 176*31, 29791, 165869, 923521, 5141947};
132+
static const int yside[MAXWIDE] = { 0, 6, 31, 176, 961, 176*31, 29791, 165869, 923521, 5141947};
143133

144134
static const signed char decode_chars[256] = {
145135
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -167,7 +157,7 @@ static const char encode_chars[34] = {
167157
,'A','E','U'};
168158

169159

170-
static const UWORD data_start[MAX_CCODE+1] = {
160+
static const int data_start[MAX_CCODE+1] = {
171161
0, 3, 6, 10, 14, 17, 19, 20, 31, 32,
172162
34, 36, 38, 43, 45, 48, 52, 59, 63, 65,
173163
67, 71, 73, 81, 87, 95, 97, 132, 139, 149,
@@ -227,7 +217,7 @@ static const UWORD data_start[MAX_CCODE+1] = {
227217
#define NR_RECS 16344
228218
#define WORST_RECS_PER_CCODE 195 // 8 Argentina @43
229219

230-
typedef struct { long minx; long miny; long maxx; long maxy; unsigned long flags; } mminforec;
220+
typedef struct { int minx; int miny; int maxx; int maxy; int flags; } mminforec;
231221

232222
#ifndef MAKE_SOURCE_DIGITAL
233223
static const mminforec mminfo[NR_RECS+1] = {

0 commit comments

Comments
 (0)