|  566ca7db22 | ||
|---|---|---|
| geojson | ||
| maps | ||
| .clang-format | ||
| .gitignore | ||
| README.md | ||
| api.h | ||
| cache.cpp | ||
| cache.h | ||
| common.cpp | ||
| common.h | ||
| config_user_example.h | ||
| debug.cpp | ||
| debug.h | ||
| geo.css | ||
| geodb.cpp | ||
| geostat.cpp | ||
| geostat_cli.cpp | ||
| gpx.cpp | ||
| gpx.h | ||
| heat.cpp | ||
| heat.h | ||
| maps.h | ||
| meson.build | ||
| ocdb.cpp | ||
| ocdb.h | ||
| okapi.cpp | ||
| okapi.h | ||
| rating-star.png | ||
| region.cpp | ||
| region.h | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	GEOSTAT
Tools for computing various statistics related to Geocaching/Opencaching
Sample web interface
A sample web interface to play with the tool is available at http://tomaszg.pl/geo/.
Usage
The main tool is called geostat. It is able to access opencaching.pl via OKAPI or from local database dump maintained by geodb. It can also partially read GPX files, e.g. exported from c:geo. It produces various statistics (either as text output with geostat_cli, or in a HTML form with geostat) and renders a heat map of found/not found caches in a selected region. HTML output requires a style sheet. Sample one is included as geo.css.
Usage: geostat [options]
Generate HTML stats from Opencaching data or GPX files.
 * Data sources:
	-o[user]	use Opencaching; if specified user will be a user name used for all OC instances
	-p user		user for opencaching.pl
	-d user		user for opencaching.de
	-u user		user for opencaching.us
	-n user		user for opencaching.nl
	-r user		user for opencaching.ro
	-k user		user for opencaching.uk
	-q		use local SQLite file with dump of OC database
	-i timestamp	start date
	-f timestamp	finish date
 * Output:
	-N		compute stats only for unfound caches (works only with SQLite)
	-Q		exclude quiz caches from unfound caches
	-H file		render a heat map to a file
	-s n		stamp size for a heat map (default = 15)
	-e		use exponential to flatten the heat map
	-t		draw trail instead of heat map
	-m map		chosen map: Poland, Poland_relief, Poland_big, Europe, World or a name of voivodeship (default = Poland)
	-h		display this help screen
There is a helper program geodb which manages local SQLite database. It can initialize the database from full data dump or update it according to changelogs grabbed from OKAPI.
Usage: geodb [-i path] [-uh]
Manage local Opencaching database.
	-i folder	initialize database from dump located in given folder
	-u	update database with changelogs grabbed via OKAPI
	-h	display this help screen
Installation
To compile it requires:
- C++ compliler supporting C++17 and a minor subset of C++2a (e.g. GCC-9 or Clang-8).
- meson (at least 0.47.0) + ninja build system
- libcurl: https://curl.haxx.se/libcurl/
- JSON for Modern C++: https://github.com/nlohmann/json
- gpxlib: http://irdvo.nl/gpxlib/
- heatmap: https://github.com/lucasb-eyer/heatmap
- ImageMagick or GraphicsMagick Magick++ library
To build the project copy config_user_example.h to config_user.h and fill it out (at least API key is needed). Then
run meson build; cd build; ninja. You might need to set CXX variable to point to a correct compiler.
Credits
- 
Maps of Poland Poland.pngandPoland_big.pngcome from https://pl.wikipedia.org/wiki/Plik:Poland_location_map.svg and are licensed under CC-BY-SA and GNU FDL.
- 
Map of Poland Poland_relief.pngcomes from https://commons.wikimedia.org/wiki/File:Relief_Map_of_Poland.svg and is licensed under CC-BY-SA.
- 
Map of Poland Poland_powiaty.pngcomes from https://en.wikipedia.org/wiki/File:POLSKA_powiaty.svg and is licensed under CC-BY-SA.
- 
Map of France Benelux.pngcomes from https://pl.wikipedia.org/wiki/Plik:Benelux_location_map.svg and is licensed under CC-BY-SA.
- 
Map of France France.pngcomes from https://commons.wikimedia.org/wiki/File:France_location_map.svg and is licensed under CC-BY-SA and GNU FDL.
- 
Map of Germany Germany.pngcomes from https://commons.wikimedia.org/wiki/File:Germany_location_map.svg and is licensed under CC-BY-SA and GNU FDL.
- 
Map of Romania Romania.pngcomes from https://en.wikipedia.org/wiki/File:Romania_location_map.svg and is licensed under CC-BY-SA and GNU FDL.
- 
Map of UK UK.pngcomes from https://commons.wikimedia.org/wiki/File:United_Kingdom_NUTS_location_map.svg and is licensed under CC-BY-SA.
- 
Map of USA USA.pngcomes from https://commons.wikimedia.org/wiki/File:USA_location_map.svg and is licensed under CC-BY-SA and GNU FDL.
- 
Map of Europe Europe.pngcomes from https://pl.wikipedia.org/wiki/Plik:Europe_location_map.svg and is licensed under PD.
- 
Map of the World World.pngcomes from https://commons.wikimedia.org/wiki/File:World_location_map.svg and is licensed under PD.
- 
Maps of Voivodeships of Poland come from https://commons.wikimedia.org/wiki/File:Podlaskie_Voivodeship_location_map.svg, https://commons.wikimedia.org/wiki/File:Pomeranian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Kuyavian-Pomeranian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Warmian-Masurian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Masovian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Lesser_Poland_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Greater_Poland_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Opole_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Lower_Silesian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Silesian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Lublin_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Subcarpathian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:West_Pomeranian_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:%C5%9Awi%C4%99tokrzyskie_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:Lubusz_Voivodeship_location_map.svg, https://pl.wikipedia.org/wiki/Plik:%C5%81%C3%B3d%C5%BA_Voivodeship_location_map.svg and are licensed under CC-BY-SA. 
- 
Data about administrative boundaries of Poland comes from OpenStreetMap via https://wambachers-osm.website/boundaries/. 
- 
CSS tricks used to render histograms are based on https://css-tricks.com/making-charts-with-css.