Skip to content
Commits on Source (6)
......@@ -13,6 +13,13 @@ This project adheres to [Semantic Versioning](https://semver.org/).
### Fixed
## [2.2.2] - 2018-02-03
### Fixed
- Make `--output-lines` work even if `--output-polygons` is set to `none`.
## [2.2.1] - 2018-12-07
### Added
......
......@@ -20,7 +20,7 @@ project(osmcoastline)
set(OSMCOASTLINE_VERSION_MAJOR 2)
set(OSMCOASTLINE_VERSION_MINOR 2)
set(OSMCOASTLINE_VERSION_PATCH 1)
set(OSMCOASTLINE_VERSION_PATCH 2)
set(OSMCOASTLINE_VERSION
${OSMCOASTLINE_VERSION_MAJOR}.${OSMCOASTLINE_VERSION_MINOR}.${OSMCOASTLINE_VERSION_PATCH})
......
......@@ -263,16 +263,16 @@ coastline that can remain open. The coastline starts somewhere around 180°
East, 77° South and ends around 180° West and 77° South. OSMCoastline will find
those open ends and connect them by adding several "nodes" forming a proper
polygon. Depending on the output projection (EPSG:4326 or EPSG:3857) this
polygon will either go to the South Pole or to the 85.0511° line.
polygon will either extend to the South Pole or to the 85.0511° line.
## Filtering
The program `osmcoastline_filter` can be used to filter from an OSM planet file
all nodes and ways needed for building the coastlines and writing them out in
OSM format. This file will be a lot smaller (less than 1%) than the original
planet file, but it contains everything needed to assemble the coastline
polygons.
all nodes and ways needed for building the coastlines and write them out in
OSM format. The resulting file will be a lot smaller (less than 1%) than the
original planet file, but it contains everything needed to assemble the
coastline polygons.
If you are playing around or want to run `osmcoastline` several times with
different parameters, run `osmcoastline_filter` once first and use its output
......
OSMCoastline TODO
=================
* write out statistics to meta table
* make fixing of direction optional?
* only when there are no warnings?
* determine best defaults for bbox overlap, max-points and close distance
* Magic number 100 in split_bbox?
osmcoastline (2.2.1-2) UNRELEASED; urgency=medium
osmcoastline (2.2.2-1) unstable; urgency=medium
* New upstream release.
* Bump Standards-Version to 4.3.0, no changes.
* Update copyright years for Jochen Topf.
* Add lintian override for file-references-package-build-path.
-- Bas Couwenberg <sebastic@debian.org> Tue, 25 Dec 2018 22:49:13 +0100
-- Bas Couwenberg <sebastic@debian.org> Sun, 03 Feb 2019 19:30:14 +0100
osmcoastline (2.2.1-1) unstable; urgency=medium
......
......@@ -4,7 +4,7 @@ Upstream-Contact: Osmium Developers (https://osmcode.org/contact)
Source: https://github.com/osmcode/osmcoastline
Files: *
Copyright: 2012-2018, Jochen Topf <jochen@topf.org>
Copyright: 2012-2019, Jochen Topf <jochen@topf.org>
License: GPL-3+
Files: debian/*
......
......@@ -2,3 +2,6 @@
# Fortify Source functions: no, only unprotected functions found!
osmcoastline: hardening-no-fortify-functions *
# https://github.com/osmcode/osmcoastline/issues/33
osmcoastline: file-references-package-build-path usr/bin/osmcoastline
......@@ -15,7 +15,7 @@ $endfor$
$if(author)$
.SH COPYRIGHT
.PP
Copyright (C) 2012\-2018 Jochen Topf <jochen@topf.org>.
Copyright (C) 2012\-2019 Jochen Topf <jochen@topf.org>.
License GPLv3+: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
......
......@@ -14,7 +14,7 @@ fi
if [ "x$1" = "x--version" -o "x$1" = "x-V" ]; then
echo "osmcoastline_readmeta version $OSMCOASTLINE_VERSION"
echo "Copyright (C) 2012-2018 Jochen Topf <jochen@topf.org>"
echo "Copyright (C) 2012-2019 Jochen Topf <jochen@topf.org>"
echo "License: GNU GENERAL PUBLIC LICENSE Version 3 <https://gnu.org/licenses/gpl.html>."
echo "This is free software: you are free to change and redistribute it."
echo "There is NO WARRANTY, to the extent permitted by law.";
......
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......
......@@ -3,7 +3,7 @@
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......
......@@ -3,7 +3,7 @@
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......
......@@ -3,7 +3,7 @@
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......@@ -122,7 +122,7 @@ Options::Options(int argc, char* argv[]) {
break;
case 'V':
std::cout << "osmcoastline " << get_osmcoastline_long_version() << " / " << get_libosmium_version() << '\n'
<< "Copyright (C) 2012-2018 Jochen Topf <jochen@topf.org>\n"
<< "Copyright (C) 2012-2019 Jochen Topf <jochen@topf.org>\n"
<< "License: GNU GENERAL PUBLIC LICENSE Version 3 <https://gnu.org/licenses/gpl.html>.\n"
<< "This is free software: you are free to change and redistribute it.\n"
<< "There is NO WARRANTY, to the extent permitted by law.\n";
......
......@@ -3,7 +3,7 @@
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......@@ -318,7 +318,7 @@ int main(int argc, char *argv[]) {
vout << "Not writing out rings. (Use option --output-rings/-r if you want the rings.)\n";
}
if (options.output_polygons != output_polygon_type::none) {
if (options.output_polygons != output_polygon_type::none || options.output_lines) {
try {
vout << "Create polygons...\n";
CoastlinePolygons coastline_polygons{create_polygons(coastline_rings, output_database, &warnings, &errors), \
......@@ -345,41 +345,43 @@ int main(int argc, char *argv[]) {
vout << "Not writing coastlines as lines (Use --output-lines/-l if you want this).\n";
}
if (options.epsg == 4326) {
vout << "Checking for questionable input data...\n";
const unsigned int questionable = coastline_rings.output_questionable(coastline_polygons, output_database);
warnings += questionable;
vout << " Found " << questionable << " rings in input data.\n";
} else {
vout << "Not performing check for questionable input data, because it only works in EPSG:4326...\n";
}
if (options.output_polygons != output_polygon_type::none) {
if (options.epsg == 4326) {
vout << "Checking for questionable input data...\n";
const unsigned int questionable = coastline_rings.output_questionable(coastline_polygons, output_database);
warnings += questionable;
vout << " Found " << questionable << " rings in input data.\n";
} else {
vout << "Not performing check for questionable input data, because it only works in EPSG:4326...\n";
}
if (options.split_large_polygons) {
vout << "Split polygons with more than " << options.max_points_in_polygon << " points... (Use --max-points/-m to change this. Set to 0 not to split at all.)\n";
vout << " Using overlap of " << options.bbox_overlap << " (Set this with --bbox-overlap/-b).\n";
coastline_polygons.split();
stats.land_polygons_after_split = coastline_polygons.num_polygons();
}
if (options.split_large_polygons) {
vout << "Split polygons with more than " << options.max_points_in_polygon << " points... (Use --max-points/-m to change this. Set to 0 not to split at all.)\n";
vout << " Using overlap of " << options.bbox_overlap << " (Set this with --bbox-overlap/-b).\n";
coastline_polygons.split();
stats.land_polygons_after_split = coastline_polygons.num_polygons();
}
vout << "Checking and making polygons valid...\n";
warnings += coastline_polygons.check_polygons();
vout << "Checking and making polygons valid...\n";
warnings += coastline_polygons.check_polygons();
if (options.output_polygons == output_polygon_type::land ||
options.output_polygons == output_polygon_type::both) {
vout << "Writing out land polygons...\n";
coastline_polygons.output_land_polygons(options.output_polygons == output_polygon_type::both);
}
if (options.output_polygons == output_polygon_type::water ||
options.output_polygons == output_polygon_type::both) {
vout << "Writing out water polygons...\n";
coastline_polygons.output_water_polygons();
if (options.output_polygons == output_polygon_type::land ||
options.output_polygons == output_polygon_type::both) {
vout << "Writing out land polygons...\n";
coastline_polygons.output_land_polygons(options.output_polygons == output_polygon_type::both);
}
if (options.output_polygons == output_polygon_type::water ||
options.output_polygons == output_polygon_type::both) {
vout << "Writing out water polygons...\n";
coastline_polygons.output_water_polygons();
}
}
} catch (const std::runtime_error& e) {
vout << e.what() << '\n';
++errors;
}
} else {
vout << "Not creating polygons (Because you set the --no-polygons/-p option).\n";
vout << "Not creating polygons (Because you used the --output-polygons=none option).\n";
}
vout << memory_usage();
......
/*
Copyright 2012-2018 Jochen Topf <jochen@topf.org>.
Copyright 2012-2019 Jochen Topf <jochen@topf.org>.
This file is part of OSMCoastline.
......@@ -86,7 +86,7 @@ int main(int argc, char* argv[]) {
break;
case 'V':
std::cout << "osmcoastline_filter " << get_osmcoastline_long_version() << " / " << get_libosmium_version() << '\n'
<< "Copyright (C) 2012-2018 Jochen Topf <jochen@topf.org>\n"
<< "Copyright (C) 2012-2019 Jochen Topf <jochen@topf.org>\n"
<< "License: GNU GENERAL PUBLIC LICENSE Version 3 <https://gnu.org/licenses/gpl.html>.\n"
<< "This is free software: you are free to change and redistribute it.\n"
<< "There is NO WARRANTY, to the extent permitted by law.\n";
......