[mapcode] 26/32: Added changes required by PG

Stefan Fritsch sf at moszumanska.debian.org
Wed Nov 2 23:27:17 UTC 2016


This is an automated email from the git hooks/post-receive script.

sf pushed a commit to annotated tag v1.33
in repository mapcode.

commit 3930e94b6edcc1f7c94a8b6a9b66e7e671293332
Author: Rijn Buve <rijn at buve.nl>
Date:   Tue Sep 2 13:39:57 2014 +0200

    Added changes required by PG
---
 example/{mapcode.c => mapcode.cpp} |  9 +++++----
 mapcodelib/basics.h                | 26 +++++---------------------
 mapcodelib/mapcoder.c              |  6 +++---
 mapcodelib/mapcoder.h              | 20 +++++++++++++++++++-
 4 files changed, 32 insertions(+), 29 deletions(-)

diff --git a/example/mapcode.c b/example/mapcode.cpp
similarity index 98%
rename from example/mapcode.c
rename to example/mapcode.cpp
index d3102d7..20bd7b8 100644
--- a/example/mapcode.c
+++ b/example/mapcode.cpp
@@ -24,6 +24,7 @@
  */
 
 #include <stdio.h>
+#include <time.h>
 #include <math.h>
 #include "../mapcodelib/mapcoder.c"
 
@@ -144,8 +145,8 @@ static void unitToLatLonDeg(
     const double lonRad = atan2(y, x);
 
     // Convert radians to degrees.
-    *latDeg = isnan(latRad) ? 90.0 : radToDeg(latRad);
-    *lonDeg = isnan(lonRad) ? 180.0 : radToDeg(lonRad);
+    *latDeg = (latRad == NAN) ? 90.0 : radToDeg(latRad);
+    *lonDeg = (lonRad == NAN) ? 180.0 : radToDeg(lonRad);
 }
 
 
@@ -398,7 +399,7 @@ int main(const int argc, const char** argv)
 
         // Get territory context.
         int context = 0;
-        char* defaultTerritory = "AAA";
+        const char* defaultTerritory = "AAA";
         if (argc == 5) {
             context = convertTerritoryIsoNameToCode(argv[4], 0);
             defaultTerritory = argv[4];
@@ -540,7 +541,7 @@ int main(const int argc, const char** argv)
 
         int gridX = 0;
         int gridY = 0;
-        int line = round(sqrt(totalNrOfPoints));
+        int line = (int) (sqrt(totalNrOfPoints) + 0.5);
         for (int i = 0; i < totalNrOfPoints; ++i) {
             double lat;
             double lon;
diff --git a/mapcodelib/basics.h b/mapcodelib/basics.h
old mode 100755
new mode 100644
index 1cafe44..1dbb933
--- a/mapcodelib/basics.h
+++ b/mapcodelib/basics.h
@@ -1,31 +1,15 @@
-/*
- * Copyright (C) 2014 Stichting Mapcode Foundation (http://www.mapcode.com)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
 #define UWORD unsigned short int // 2-byte unsigned integer
 
 #define mapcode_cversion "1.33"
 #define MAXWIDE 10
 #define BASEX 31
 #define MAXFITLONG 6
-#define XSIDE3 168
+#define XSIDE3 168 
 #define YSIDE3 176
 
 #define ALIASES "2UK=2UT,2CG=2CT,1GU=GUM,1UM=UMI,1VI=VIR,1PR=PRI,1AS=ASM,1MP=MNP,4JB=JBT,4QL=QLD,4TS=TAS,4CX=CXR,4CC=CCK,4NF=NFK,4HM=HMD,4NI=NFK,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 [...]
 
-#define MAX_MAPCODE_TERRITORY_CODE 541 // total number of areas (i.e. recognised iso codes) in this database
+#define MAX_CCODE 541 // total number of areas (i.e. recognised iso codes) in this database
 static char *entity_iso = ""
 		"VAT,MCO,GIB,TKL,CCK,BLM,NRU,TUV,MAC,SXM,"
 		"MAF,NFK,PCN,BVT,BMU,IOT,SMR,GGY,AIA,MSR,"
@@ -168,7 +152,7 @@ static char encode_chars[31] = {
 };
 
 
-static UWORD data_start[MAX_MAPCODE_TERRITORY_CODE+1] = {
+static UWORD data_start[MAX_CCODE+1] = {
 	    0,    3,    6,    9,   13,   16,   18,   19,   30,   31,
 	   33,   35,   37,   42,   44,   47,   51,   54,   56,   58,
 	   60,   62,   64,   68,   71,   79,   81,  116,  121,  131,
@@ -226,13 +210,13 @@ static UWORD data_start[MAX_MAPCODE_TERRITORY_CODE+1] = {
 	16130,16162
 };
 
-#define NR_BOUNDARY_RECS 16162
+#define NR_RECS 16162
 #define WORST_RECS_PER_CCODE 195 // 8 Argentina @43
 
 typedef struct { long minx; long miny; long maxx; long maxy; unsigned long flags; } mminforec;
 
 #ifndef MAKE_SOURCE_DIGITAL
-static mminforec mminfo[NR_BOUNDARY_RECS+1] = {
+static mminforec mminfo[NR_RECS+1] = {
 	{  12433114,  41851944,  12548434,  41938434,0x001002b},
 	{   5850000,  35450000,  18560000,  55080000,0x50a0636},
 	{  12444000,  41899000,  12460000,  41908000,0x003063c},
diff --git a/mapcodelib/mapcoder.c b/mapcodelib/mapcoder.c
old mode 100755
new mode 100644
index af1d9d9..165b11a
--- a/mapcodelib/mapcoder.c
+++ b/mapcodelib/mapcoder.c
@@ -2317,8 +2317,8 @@ void asdms1(unsigned char *r,double v,long max,unsigned char degsym) // worst ca
 unsigned char *asdms(unsigned char *r,double lat,double lon,unsigned char degsym) // worst case EXcluding zts is 22 bytes: -##d##'##",-###d##'##"
 {
   asdms1(r,lat,90*3600,degsym);
-  strcat(r,",");
-  asdms1(r+strlen(r),lon,180*3600,degsym);
+  strcat((char*)r,",");
+  asdms1(r+strlen((char*)r),lon,180*3600,degsym);
   return r;
 }
 
@@ -2348,7 +2348,7 @@ int interpret_coord( const unsigned char *i, int islat, double *result )
   while ( expnow<4 && isdig(*i) )
   {
     // get value
-    double v=atof(i); skipfp(i); skipwhite(i);
+    double v=atof((char*)i); skipfp(i); skipwhite(i);
     if ( *i && strchr("oOdD\x0F8\x0BA\x0B0\x0A7",*i) ) // degree symbol? $F8=248degree $BA=186 $B0=176 $A7=167
     {
       i++; skipwhite(i);
diff --git a/mapcodelib/mapcoder.h b/mapcodelib/mapcoder.h
old mode 100755
new mode 100644
index a04805d..ab483bc
--- a/mapcodelib/mapcoder.h
+++ b/mapcodelib/mapcoder.h
@@ -19,7 +19,7 @@
 #define UWORD           unsigned short int  // 2-byte unsigned integer.
 #define SUPPORT_FOREIGN_ALPHABETS
 
-#define MAX_NR_OF_MAPCODE_RESULTS           64          // Max. number of results returned by encoder.
+#define MAX_NR_OF_MAPCODE_RESULTS           48          // Max. number of results returned by encoder.
 #define MAX_MAPCODE_RESULT_LEN              24          // Max. number of characters in a single result.
 #define COMPARE_MAPCODE_MISSING_CHARACTERS  -999        // Used for compareWithMapcodeFormat.
 
@@ -203,3 +203,21 @@ const char* decodeToRoman(const UWORD* string);
  *      de-allocated by the caller. It will be overwritten by a subsequent call to this method!
  */
 const UWORD* encodeToAlphabet(const char* mapcode, int alphabet);
+
+
+/**
+ * List of #defines to support legacy systems. These names are deprecated but supported for
+ * existing systems. Please use the names above.
+ */
+#define coord2mc                    encodeLatLonToMapcodes
+#define coord2mc1                   encodeLatLonToSingleMapcode
+#define mc2coord                    decodeMapcodeToLatLon
+#define lookslikemapcode            compareWithMapcodeFormat
+#define text2tc                     convertTerritoryIsoNameToCode
+#define tc2text                     convertTerritoryCodeToIsoName
+#define tccontext                   getCountryOrParentCountry
+#define tcparent                    getParentCountryOfState
+#define decode_to_roman             decodeToRoman
+#define encode_to_alphabet          encodeToAlphabet
+#define MAX_MAPCODE_TERRITORY_CODE  MAX_CCODE
+#define NR_BOUNDARY_RECS            NR_RECS

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/mapcode.git



More information about the Pkg-grass-devel mailing list