This is an automated email from the git hooks/post-receive script. sf pushed a commit to annotated tag v1.40 in repository mapcode.
commit 28548ec07cda97cba1f0c9484a60101c147c51be Author: Rijn Buve <[email protected]> Date: Wed Sep 17 11:27:50 2014 +0200 Prepared for 1.40 added extraDigits to --random; improved help text --- README | 23 +++++++++++++++++------ example/mapcode.cpp | 37 +++++++++++++++++++++++++++---------- mapcodelib/basics.h | 16 ++++++++++++++++ mapcodelib/mapcoder.c | 4 ++-- mapcodelib/mapcoder.h | 1 - 5 files changed, 62 insertions(+), 19 deletions(-) diff --git a/README b/README index 8e9be4d..a9a739e 100644 --- a/README +++ b/README @@ -49,7 +49,7 @@ of how to use the library. To build the original Mapcode tool, execute: cd example - gcc mapcode.c -o mapcode + gcc mapcode.cpp -o mapcode For help, simply execute the binary file 'mapcode' without no arguments. This tool provides a rather extensive command-line interface to encode and @@ -61,34 +61,45 @@ MAPCODE LIBRARY - RELEASE NOTES ------------------------------------------------------------------------------- 1.40 + Added extraDigits parameter to allow high-precision mapcodes to be generated. 1.33 - Fix to not remove valid results just across the edge of a territory. Improved interface readability - and renamed methods to more readable forms. + + Fix to not remove valid results just across the edge of a territory. + Improved interface readability and renamed methods to more readable forms. 1.32 - Added encodeLatLonToSingleMapcode(); fixed 1.29 so no country-wide alternative is produced in edge cases; prevent FIJI failing to - decode at exactly 180 degrees. + + Added encodeLatLonToSingleMapcode(); fixed 1.29 so no country-wide alternative + is produced in edge cases; prevent FIJI failing to decode at exactly 180 degrees. 1.31 + Added compareWithMapcodeFormat(). 1.30 + IUpdated the documentation and extended it with examples and suggestions. 1.29 + Also generate country-wide alternative mapcodes for states. 1.28 - Bug fix for the needless generation of 7-letter alternatives to short mapcodes in large states in India. + + Bug fix for the needless generation of 7-letter alternatives to short mapcodes + in large states in India. 1.27 + Improved (faster) implementation of the function isInArea. 1.26 + Added alias OD ("Odisha") for indian state OR ("Orissa"). 1.25 + Initial release to the public domain. diff --git a/example/mapcode.cpp b/example/mapcode.cpp index 7b3457b..7bf03c6 100644 --- a/example/mapcode.cpp +++ b/example/mapcode.cpp @@ -1,6 +1,17 @@ -/** - * Copyright (C) 2014 Stichting Mapcode Foundation - * For terms of use refer to http://www.mapcode.com/downloads.html +/* + * 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. */ /** @@ -31,7 +42,6 @@ #define my_isnan(x) (false) #define my_round(x) ((long) (floor((x) + 0.5))) -static const char* VERSION = "1"; static const int SELF_CHECK = 1; static const int SELF_CHECK_EXIT = 0; @@ -64,7 +74,7 @@ static double lonLargestNrOfResults = 0.0; * whenever a incorrect amount or combination of parameters is entered. */ static void usage(const char* appName) { - printf("MAPCODE (version %s.%s%s)\n", mapcode_cversion, VERSION, SELF_CHECK ? ", self-checking" : ""); + printf("MAPCODE (version %s%s)\n", mapcode_cversion, SELF_CHECK ? ", self-checking" : ""); printf("Copyright (C) 2014 Stichting Mapcode Foundation\n"); printf("\n"); printf("Usage:\n"); @@ -80,12 +90,16 @@ static void usage(const char* appName) { printf("\n"); printf(" %s [-b | --boundaries]\n", appName); printf(" %s [-g | --grid] <nrOfPoints> [<extraDigits>]\n", appName); - printf(" %s [-r | --random] <nrOfPoints> [<seed>]\n", appName); + printf(" %s [-r | --random] <nrOfPoints> [<extraDigits>] [<seed>]\n", appName); printf("\n"); printf(" Create a test set of lat/lon pairs based on the Mapcode boundaries database\n"); printf(" as a fixed 3D grid or random uniformly distributed set of lat/lons with their\n"); printf(" (x, y, z) coordinates and all Mapcode aliases.\n"); printf("\n"); + printf(" <extraDigits> specifies additional accuracy, use 0 for standard.\n"); + printf(" <seed> is an optional random seed, use 0 for arbitrary>.\n"); + printf(" (You may wish to specify a specific seed to regenerate test cases).\n"); + printf("\n"); printf(" The output format is:\n"); printf(" <number-of-aliases> <lat-deg> <lon-deg> <x> <y> <z>\n"); printf(" <territory> <mapcode> (repeated 'number-of-aliases' times)\n"); @@ -100,7 +114,7 @@ static void usage(const char* appName) { printf(" The (x, y, z) coordinates are primarily meant for visualization of the data set.\n"); printf("\n"); printf(" Notes on the use of stdout and stderr:\n"); - printf(" stdout: used for outputting 3D point data; stderr: used for statistics."); + printf(" stdout: used for outputting 3D point data; stderr: used for statistics.\n"); printf(" You can redirect stdout to a destination file, while stderr will show progress.\n"); printf("\n"); printf(" The result code is 0 when no error occurred, 1 if an input error occurred and 2\n"); @@ -552,7 +566,7 @@ int main(const int argc, const char** argv) // Generate grid test set: [-g | --grid] <nrOfPoints> [<extradigits>] // Generate uniform test set: [-r | --random] <nrOfPoints> [<seed>] // ------------------------------------------------------------------ - if ((argc < 3) || (argc > 4)) { + if ((argc < 3) || (argc > 5)) { fprintf(stderr, "error: incorrect number of arguments\n\n"); usage(appName); return NORMAL_ERROR; @@ -565,8 +579,11 @@ int main(const int argc, const char** argv) } int random = (strcmp(cmd, "-r") == 0) || (strcmp(cmd, "--random") == 0); if (random) { - if (argc == 4) { - const int seed = atoi(argv[3]); + if (argc >= 4) { + extraDigits = atoi(argv[3]); + } + if (argc == 5) { + const int seed = atoi(argv[4]); srand(seed); } else { diff --git a/mapcodelib/basics.h b/mapcodelib/basics.h index feb90db..47ca841 100644 --- a/mapcodelib/basics.h +++ b/mapcodelib/basics.h @@ -1,3 +1,19 @@ +/* + * 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.40" diff --git a/mapcodelib/mapcoder.c b/mapcodelib/mapcoder.c index 5d8c775..3e9735e 100644 --- a/mapcodelib/mapcoder.c +++ b/mapcodelib/mapcoder.c @@ -2348,7 +2348,7 @@ int interpret_coord( const unsigned char *i, int islat, double *result ) char *p; int sign=1; - while (*i && (p=strchr(winds,*i))!=NULL) { { if ( (p-winds) & 1 ) sign*=-1; } i++; } + while (*i && (p=(char*)strchr(winds,*i))!=NULL) { { if ( (p-(char*)winds) & 1 ) sign*=-1; } i++; } // we are now at a lead digit, or there is an error if (!isdig(*i)) @@ -2381,7 +2381,7 @@ int interpret_coord( const unsigned char *i, int islat, double *result ) } // allow all posisble final endsigns - { while (*i && (p=strchr(winds,*i))!=NULL) { if ( (p-winds) & 1 ) sign*=-1; i++; } } + { while (*i && (p=(char*)strchr(winds,*i))!=NULL) { if ( (p-(char*)winds) & 1 ) sign*=-1; i++; } } // we now MUST be at the end of the string! if (*i) diff --git a/mapcodelib/mapcoder.h b/mapcodelib/mapcoder.h index 7970e5c..0c3d6c8 100644 --- a/mapcodelib/mapcoder.h +++ b/mapcodelib/mapcoder.h @@ -14,7 +14,6 @@ * limitations under the License. */ - #define RELEASENEAT // Use clean code (mapcoder.c). #define UWORD unsigned short int // 2-byte unsigned integer. #define SUPPORT_FOREIGN_ALPHABETS -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/mapcode.git _______________________________________________ Pkg-grass-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

