[Git][debian-gis-team/osmcoastline][master] 5 commits: New upstream version 2.5.0
Bas Couwenberg (@sebastic)
gitlab at salsa.debian.org
Sun Jan 18 17:56:05 GMT 2026
Bas Couwenberg pushed to branch master at Debian GIS Project / osmcoastline
Commits:
5b97075b by Bas Couwenberg at 2026-01-18T18:47:34+01:00
New upstream version 2.5.0
- - - - -
f5879a1a by Bas Couwenberg at 2026-01-18T18:47:34+01:00
Update upstream source from tag 'upstream/2.5.0'
Update to upstream version '2.5.0'
with Debian dir 27fe4df8f1594a9ad1bd803265b0d8fd2b6fab40
- - - - -
bc7194be by Bas Couwenberg at 2026-01-18T18:49:30+01:00
New upstream release.
- - - - -
a6e4b6be by Bas Couwenberg at 2026-01-18T18:50:32+01:00
Update copyright file.
- - - - -
355d166a by Bas Couwenberg at 2026-01-18T18:50:48+01:00
Set distribution to unstable.
- - - - -
29 changed files:
- .clang-tidy
- .github/workflows/ci.yml
- .github/workflows/clang-tidy.yml
- CHANGELOG.md
- CMakeLists.txt
- debian/changelog
- debian/copyright
- man/manpage.template
- osmcoastline_readmeta
- src/coastline_polygons.cpp
- src/coastline_polygons.hpp
- src/coastline_ring.cpp
- src/coastline_ring.hpp
- src/coastline_ring_collection.cpp
- src/coastline_ring_collection.hpp
- src/nodegrid2opl.cpp
- src/options.cpp
- src/options.hpp
- src/osmcoastline.cpp
- src/osmcoastline_filter.cpp
- src/osmcoastline_segments.cpp
- src/osmcoastline_ways.cpp
- src/output_database.cpp
- src/output_database.hpp
- src/return_codes.hpp
- src/srs.cpp
- src/srs.hpp
- src/stats.hpp
- src/util.hpp
Changes:
=====================================
.clang-tidy
=====================================
@@ -1,5 +1,5 @@
---
-Checks: '*,-altera-*,-android-cloexec-*,-boost-use-ranges,-bugprone-easily-swappable-parameters,-cert-err58-cpp,-cert-err60-cpp,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-type-static-cast-downcast,-cppcoreguidelines-pro-type-vararg,-fuchsia-*,-google-runtime-references,-hicpp-avoid-c-arrays,-hicpp-no-array-decay,-hicpp-vararg,-llvmlibc-*,-misc-no-recursion,-modernize-avoid-c-arrays,-modernize-use-trailing-return-type,-readability-implicit-bool-cast,-readability-identifier-length,-readability-implicit-bool-conversion,-readability-magic-numbers,-readability-use-anyofallof'
+Checks: '*,-altera-*,-android-cloexec-*,-boost-use-ranges,-bugprone-easily-swappable-parameters,-cert-err58-cpp,-cert-err60-cpp,-concurrency-mt-unsafe,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-type-static-cast-downcast,-cppcoreguidelines-pro-type-vararg,-fuchsia-*,-google-runtime-references,-hicpp-avoid-c-arrays,-hicpp-no-array-decay,-hicpp-vararg,-llvm-prefer-static-over-anonymous-namespace,-llvmlibc-*,-misc-include-cleaner,-misc-no-recursion,-modernize-avoid-c-arrays,-modernize-use-trailing-return-type,-readability-implicit-bool-cast,-readability-identifier-length,-readability-implicit-bool-conversion,-readability-magic-numbers,-readability-use-anyofallof'
#
# For a list of check options, see:
# http://clang.llvm.org/extra/clang-tidy/checks/list.html
@@ -24,6 +24,9 @@ Checks: '*,-altera-*,-android-cloexec-*,-boost-use-ranges,-bugprone-easily-swapp
# cert-err60-cpp
# Reports exceptions from standard library as broken.
#
+# concurrency-mt-unsafe
+# All the code is single-threaded.
+#
# cppcoreguidelines-avoid-c-arrays
# hicpp-avoid-c-arrays
# modernize-avoid-c-arrays
@@ -60,9 +63,15 @@ Checks: '*,-altera-*,-android-cloexec-*,-boost-use-ranges,-bugprone-easily-swapp
# hicpp-vararg
# Too strict, sometimes calling vararg functions is necessary.
#
+# llvm-prefer-static-over-anonymous-namespace
+# Matter of taste and we are not following this one.
+#
# llvmlibc-*
# Not applicable.
#
+# misc-include-cleaner
+# Too many reports. Disabled for now.
+#
# misc-no-recursion
# Nothing wrong about recursion.
#
=====================================
.github/workflows/ci.yml
=====================================
@@ -5,126 +5,70 @@ on: [ push, pull_request ]
jobs:
linux:
runs-on: ubuntu-latest
+ timeout-minutes: 30
strategy:
fail-fast: false
matrix:
- name: [Ubuntu-20, Ubuntu-22, Ubuntu-24, Debian-10, Debian-11, Debian-12, Debian-Testing, Debian-Experimental, Fedora-37, Fedora-38, Fedora-39, Fedora-40]
+ image:
+ - "ubuntu:22.04" # gcc 12.2.0, clang 15.0.7, cmake 3.24.2
+ - "ubuntu:24.04" # gcc 14.2.0, clang 18.1.3, cmake 3.28.3
+ - "debian:bookworm" # gcc 12.2.0, clang 15.0.6, cmake 3.25.1
+ - "debian:trixie" # gcc 14.2.0, clang 19.1.7, cmake 3.31.6
+ - "debian:testing"
+ - "debian:experimental"
+ - "fedora:40"
+ - "fedora:41"
+ - "fedora:42"
+ - "fedora:43"
build_type: [Dev]
cpp_compiler: [g++]
- cpp_version: [c++14]
+ cpp_version: [14]
include:
- - name: Ubuntu-20
- # Uses gcc 9.3.0, clang 10.0.0, cmake 3.16.3
- image: "ubuntu:20.04"
- ubuntu: 20
- - name: Ubuntu-22
- # Uses gcc 12.2.0, clang 15.0.7, cmake 3.24.2
- image: "ubuntu:22.04"
- ubuntu: 22
- CXXFLAGS: -Wno-stringop-overread
- - name: Ubuntu-24
- image: "ubuntu:24.04"
- ubuntu: 24
- CXXFLAGS: -Wno-stringop-overread
- - name: Debian-10
- # Uses gcc 8.3.0, clang 7.0.1, cmake 3.13.4
- image: "debian:buster"
- - name: Debian-11
- # Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
- image: "debian:bullseye"
- - name: Debian-11
- image: "debian:bullseye"
- cpp_version: c++17
- - name: Debian-11
- image: "debian:bullseye"
- cpp_version: c++20
- - name: Debian-11
- image: "debian:bullseye"
+ - image: "debian:bookworm"
c_compiler: clang
cpp_compiler: clang++
- - name: Debian-11
- image: "debian:bullseye"
+ - image: "debian:trixie"
+ cpp_version: 17
+ - image: "debian:trixie"
+ cpp_version: 20
+ - image: "debian:trixie"
+ cpp_version: 23
+ - image: "debian:trixie"
c_compiler: clang
cpp_compiler: clang++
- cpp_version: c++17
- - name: Debian-11
- image: "debian:bullseye"
+ - image: "debian:trixie"
c_compiler: clang
cpp_compiler: clang++
- cpp_version: c++20
- - name: Debian-11
- image: "debian:bullseye"
- build_type: RelWithDebInfo
- - name: Debian-11
- image: "debian:bullseye"
- c_compiler: clang
- cpp_compiler: clang++
- CXXFLAGS: -fsanitize=address,undefined,integer -fno-sanitize-recover=all -fno-omit-frame-pointer
- LDFLAGS: -fsanitize=address,undefined,integer
- - name: Debian-12
- # Uses gcc 12.2.0, clang 15.0.6, cmake 3.25.1
- image: "debian:bookworm"
- CXXFLAGS: -Wno-stringop-overread
- - name: Debian-12
- image: "debian:bookworm"
- cpp_version: c++17
- CXXFLAGS: -Wno-stringop-overread
- - name: Debian-12
- image: "debian:bookworm"
- cpp_version: c++20
- CXXFLAGS: -Wno-stringop-overread
- - name: Debian-12
- image: "debian:bookworm"
+ cpp_version: 17
+ - image: "debian:trixie"
c_compiler: clang
cpp_compiler: clang++
- - name: Debian-12
- image: "debian:bookworm"
+ cpp_version: 20
+ - image: "debian:trixie"
c_compiler: clang
cpp_compiler: clang++
- cpp_version: c++17
- - name: Debian-12
- image: "debian:bookworm"
- c_compiler: clang
- cpp_compiler: clang++
- cpp_version: c++20
- - name: Debian-12
- image: "debian:bookworm"
+ cpp_version: 23
+ - image: "debian:trixie"
build_type: RelWithDebInfo
- CXXFLAGS: -Wno-stringop-overread
- - name: Debian-12
- image: "debian:bookworm"
+ - image: "debian:trixie"
c_compiler: clang
cpp_compiler: clang++
- CXXFLAGS: -fsanitize=address,undefined,integer -fno-sanitize-recover=all -fno-omit-frame-pointer
- LDFLAGS: -fsanitize=address,undefined,integer
- - name: Debian-Testing
- image: "debian:testing"
- CXXFLAGS: -Wno-stringop-overread
- - name: Debian-Testing
- image: "debian:testing"
+ CXXFLAGS: -fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer
+ LDFLAGS: -fsanitize=address,undefined
+ - image: "debian:testing"
c_compiler: clang
cpp_compiler: clang++
- - name: Debian-Experimental
- image: "debian:experimental"
- CXXFLAGS: -Wno-stringop-overread
- - name: Debian-Experimental
- image: "debian:experimental"
+ - image: "debian:experimental"
c_compiler: clang
cpp_compiler: clang++
- - name: Fedora-37
- # Uses gcc 12.3.1, clang 15.0.7, cmake 3.26.4
- image: "fedora:37"
- CXXFLAGS: -Wno-stringop-overread
- - name: Fedora-38
- # Uses gcc 13.0.1, clang 16.0.5, cmake 3.26.4
- image: "fedora:38"
- CXXFLAGS: -Wno-stringop-overread
- - name: Fedora-39
- image: "fedora:39"
- CXXFLAGS: -Wno-stringop-overread
- - name: Fedora-40
- image: "fedora:40"
- CXXFLAGS: -Wno-stringop-overread
+ - image: "fedora:40"
+ CMAKE_OPTS: -DRUN_TESTS_WITH_BINARY_COMPARE=OFF
+ - image: "fedora:41"
+ CMAKE_OPTS: -DRUN_TESTS_WITH_BINARY_COMPARE=OFF
+ - image: "fedora:42"
+ CMAKE_OPTS: -DRUN_TESTS_WITH_BINARY_COMPARE=OFF
+ - image: "fedora:43"
+ CMAKE_OPTS: -DRUN_TESTS_WITH_BINARY_COMPARE=OFF
container:
image: ${{ matrix.image }}
env:
@@ -157,27 +101,23 @@ jobs:
make \
spatialite-bin \
zlib1g-dev
- - name: Install compiler
- shell: bash
- if: matrix.cpp_compiler == 'clang++-14'
- run: apt-get install -yq clang-14
- name: Prepare container (dnf)
shell: bash
if: startsWith(matrix.image, 'fedora:')
run: |
dnf install --quiet --assumeyes \
- bzip2-devel \
- cmake \
- expat-devel \
- gcc-c++ \
- gdal-devel \
- geos-devel \
- git \
- lz4-devel \
- make \
- proj-devel \
- spatialite-tools \
- zlib-devel
+ bzip2-devel \
+ cmake \
+ expat-devel \
+ gcc-c++ \
+ gdal-devel \
+ geos-devel \
+ git \
+ lz4-devel \
+ make \
+ proj-devel \
+ spatialite-tools \
+ zlib-devel
- uses: actions/checkout at v4
- uses: ./.github/actions/install-from-git
- uses: ./.github/actions/cmake
@@ -186,9 +126,11 @@ jobs:
ubuntu-latest:
runs-on: ubuntu-24.04
+ timeout-minutes: 30
env:
CC: clang-18
CXX: clang++-18
+ CXXFLAGS: -Werror
BUILD_TYPE: Dev
steps:
- uses: actions/checkout at v4
@@ -199,20 +141,22 @@ jobs:
- uses: ./.github/actions/ctest
macos:
+ runs-on: ${{ matrix.os }}
+ timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os:
- - "macos-14"
- - "macos-15"
+ - macos-14
+ - macos-15
build_type: [Dev]
include:
- - os: "macos-14"
+ - os: macos-15
build_type: Release
- runs-on: ${{ matrix.os }}
env:
CC: clang
CXX: clang++
+ CXXFLAGS: -Werror
BUILD_TYPE: ${{ matrix.build_type }}
steps:
- uses: actions/checkout at v4
=====================================
.github/workflows/clang-tidy.yml
=====================================
@@ -8,14 +8,14 @@ jobs:
strategy:
fail-fast: false
matrix:
- image: ["debian:bookworm", "debian:testing", "debian:experimental"]
+ image: ["debian:trixie", "debian:testing"]
include:
- - image: "debian:bookworm"
- clang: 15
- - image: "debian:testing"
+ - image: "debian:trixie"
clang: 19
- - image: "debian:experimental"
- clang: 20
+ - image: "debian:testing"
+ clang: 21
+# - image: "debian:experimental"
+# clang: 21
container:
image: ${{ matrix.image }}
env:
=====================================
CHANGELOG.md
=====================================
@@ -13,6 +13,18 @@ This project adheres to [Semantic Versioning](https://semver.org/).
### Fixed
+## [2.5.0] - 2026-01-18
+
+### Changed
+
+- Switch from using text ids to 64bit integer ids.
+- Various small code cleanups.
+
+### Fixed
+
+- Fix: Conversion of LinearRings into LineStrings.
+
+
## [2.4.1] - 2025-01-14
### Added
@@ -228,7 +240,9 @@ This project adheres to [Semantic Versioning](https://semver.org/).
- Added man pages
-[unreleased]: https://github.com/osmcode/osmium-tool/compare/v2.4.0...HEAD
+[unreleased]: https://github.com/osmcode/osmium-tool/compare/v2.5.0...HEAD
+[2.5.0]: https://github.com/osmcode/osmium-tool/compare/v2.4.1...v2.5.0
+[2.4.1]: https://github.com/osmcode/osmium-tool/compare/v2.4.0...v2.4.1
[2.4.0]: https://github.com/osmcode/osmium-tool/compare/v2.3.1...v2.4.0
[2.3.1]: https://github.com/osmcode/osmium-tool/compare/v2.3.0...v2.3.1
[2.3.0]: https://github.com/osmcode/osmium-tool/compare/v2.2.4...v2.3.0
=====================================
CMakeLists.txt
=====================================
@@ -6,9 +6,9 @@
#
#-----------------------------------------------------------------------------
-cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.10)
-project(osmcoastline VERSION 2.4.1 LANGUAGES CXX C)
+project(osmcoastline VERSION 2.5.0 LANGUAGES CXX C)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
@@ -16,9 +16,22 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
set(AUTHOR "Jochen Topf <jochen at topf.org>")
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+#-----------------------------------------------------------------------------
+#
+# Decide which C++ version to use (Minimum/default: C++14)
+#
+#-----------------------------------------------------------------------------
-option(WITH_LZ4 "Build with lz4 support for PBF files" ON)
+if(NOT USE_CPP_VERSION)
+ set(USE_CPP_VERSION 14)
+endif()
+message(STATUS "Use C++ version: ${USE_CPP_VERSION}")
+
+set(CMAKE_CXX_STANDARD ${USE_CPP_VERSION})
+set(CMAKE_CXX_EXTENSIONS OFF)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
#-----------------------------------------------------------------------------
@@ -27,6 +40,8 @@ option(WITH_LZ4 "Build with lz4 support for PBF files" ON)
#
#-----------------------------------------------------------------------------
+option(WITH_LZ4 "Build with lz4 support for PBF files" ON)
+
include_directories(include)
find_package(Osmium 2.16.0 COMPONENTS io gdal)
@@ -58,23 +73,6 @@ if(MSVC)
endif()
-#-----------------------------------------------------------------------------
-#
-# Decide which C++ version to use (Minimum/default: C++14).
-#
-#-----------------------------------------------------------------------------
-if(NOT MSVC)
- if(NOT USE_CPP_VERSION)
- set(USE_CPP_VERSION c++14)
- endif()
- message(STATUS "Use C++ version: ${USE_CPP_VERSION}")
- # following only available from cmake 2.8.12:
- # add_compile_options(-std=${USE_CPP_VERSION})
- # so using this instead:
- add_definitions(-std=${USE_CPP_VERSION})
-endif()
-
-
#-----------------------------------------------------------------------------
#
# Compiler and Linker flags
@@ -125,6 +123,10 @@ if(CMAKE_BUILD_TYPE STREQUAL "Dev")
add_definitions(${OSMIUM_WARNING_OPTIONS})
endif()
+if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ add_definitions(-Wno-stringop-overread)
+endif()
+
# Force RelWithDebInfo build type if none was given
if(CMAKE_BUILD_TYPE)
set(build_type ${CMAKE_BUILD_TYPE})
@@ -144,7 +146,7 @@ set(CMAKE_BUILD_TYPE ${build_type}
#
#-----------------------------------------------------------------------------
message(STATUS "Looking for clang-tidy")
-find_program(CLANG_TIDY NAMES clang-tidy clang-tidy-20 clang-tidy-19 clang-tidy-18 clang-tidy-17 clang-tidy-16 clang-tidy-15 clang-tidy-14)
+find_program(CLANG_TIDY NAMES clang-tidy clang-tidy-22 clang-tidy-21 clang-tidy-20 clang-tidy-19 clang-tidy-18 clang-tidy-17 clang-tidy-16 clang-tidy-15)
if(CLANG_TIDY)
message(STATUS "Looking for clang-tidy - found ${CLANG_TIDY}")
@@ -183,7 +185,7 @@ if(CPPCHECK)
add_custom_target(cppcheck
${CPPCHECK}
- --std=c++14 ${CPPCHECK_OPTIONS}
+ --std=c++${USE_CPP_VERSION} ${CPPCHECK_OPTIONS}
${CPPCHECK_FILES}
)
else()
=====================================
debian/changelog
=====================================
@@ -1,5 +1,6 @@
-osmcoastline (2.4.1-2) UNRELEASED; urgency=medium
+osmcoastline (2.5.0-1) unstable; urgency=medium
+ * New upstream release.
* Bump Standards-Version to 4.7.3, no changes.
* Fix old FSF address in copyright file.
* Update lintian overrides.
@@ -7,8 +8,9 @@ osmcoastline (2.4.1-2) UNRELEASED; urgency=medium
* Use test-build-validate-cleanup instead of test-build-twice.
* Drop Priority: optional, default since dpkg 1.22.13.
* Annotate build dependencies with nodoc.
+ * Update copyright file.
- -- Bas Couwenberg <sebastic at debian.org> Thu, 20 Mar 2025 06:14:02 +0100
+ -- Bas Couwenberg <sebastic at debian.org> Sun, 18 Jan 2026 18:50:36 +0100
osmcoastline (2.4.1-1) unstable; urgency=medium
=====================================
debian/copyright
=====================================
@@ -4,7 +4,7 @@ Upstream-Contact: Osmium Developers (https://osmcode.org/contact)
Source: https://github.com/osmcode/osmcoastline
Files: *
-Copyright: 2012-2025, Jochen Topf <jochen at topf.org>
+Copyright: 2012-2026, Jochen Topf <jochen at topf.org>
License: GPL-3+
Files: include/gdalcpp.hpp
=====================================
man/manpage.template
=====================================
@@ -15,7 +15,7 @@ $endfor$
$if(author)$
.SH COPYRIGHT
.PP
-Copyright (C) 2012\-2025 Jochen Topf <jochen at topf.org>.
+Copyright (C) 2012\-2026 Jochen Topf <jochen at 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.
=====================================
osmcoastline_readmeta
=====================================
@@ -16,7 +16,7 @@ fi
if [[ $# -ge 1 && ( $1 == "--version" || $1 == "-v" ) ]]; then
echo "osmcoastline_readmeta version $OSMCOASTLINE_VERSION"
- echo "Copyright (C) 2012-2025 Jochen Topf <jochen at topf.org>"
+ echo "Copyright (C) 2012-2026 Jochen Topf <jochen at 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.";
=====================================
src/coastline_polygons.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
@@ -103,7 +103,9 @@ unsigned int CoastlinePolygons::fix_direction() {
assert(ir);
ir->reversePoints();
}
- m_output.add_error_line(make_unique_ptr_clone<OGRLineString>(er), "direction");
+ auto* ring = polygon->getExteriorRing()->clone();
+ auto ls = std::unique_ptr<OGRLineString>(OGRGeometryFactory::forceToLineString(ring)->toLineString());
+ m_output.add_error_line(std::move(ls), "direction");
warnings++;
}
}
@@ -124,7 +126,7 @@ void CoastlinePolygons::split_geometry(std::unique_ptr<OGRGeometry>&& geom, int
} else if (geom->getGeometryType() == wkbMultiPolygon) {
const auto mp = static_cast_unique_ptr<OGRMultiPolygon>(std::move(geom));
while (mp->getNumGeometries() > 0) {
- std::unique_ptr<OGRPolygon> polygon{static_cast<OGRPolygon*>(mp->getGeometryRef(0))};
+ std::unique_ptr<OGRPolygon> polygon{mp->getGeometryRef(0)};
mp->removeGeometry(0, false);
polygon->assignSpatialReference(srs.out());
split_polygon(std::move(polygon), level);
@@ -345,7 +347,7 @@ void CoastlinePolygons::split_bbox(const OGREnvelope& envelope, polygon_vector_t
case wkbMultiPolygon: {
auto mp = static_cast_unique_ptr<OGRMultiPolygon>(std::move(geom));
for (int i = mp->getNumGeometries() - 1; i >= 0; --i) {
- auto p = std::unique_ptr<OGRPolygon>(static_cast<OGRPolygon*>(mp->getGeometryRef(i)));
+ auto p = std::unique_ptr<OGRPolygon>(mp->getGeometryRef(i));
assert(p);
mp->removeGeometry(i, FALSE);
p->assignSpatialReference(mp->getSpatialReference());
@@ -426,7 +428,7 @@ void CoastlinePolygons::split_bbox(const OGREnvelope& envelope, polygon_vector_t
const bool e2_intersects_e = e2.Intersects(polygon_envelope);
if (e1_intersects_e && e2_intersects_e) {
- v1.emplace_back(static_cast<OGRPolygon*>(polygon->clone()));
+ v1.emplace_back(polygon->clone());
v2.push_back(std::move(polygon));
} else if (e1_intersects_e) {
v1.push_back(std::move(polygon));
=====================================
src/coastline_polygons.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/coastline_ring.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/coastline_ring.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/coastline_ring_collection.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
@@ -384,7 +384,7 @@ void CoastlineRingCollection::close_rings(OutputDatabase& output, bool debug, do
m_fixed_rings++;
CoastlineRing* e = eit->second->get();
- CoastlineRing* s = sit->second->get();
+ const CoastlineRing* s = sit->second->get();
output.add_error_point(e->ogr_last_point(), "fixed_end_point", e->last_node_id());
output.add_error_point(s->ogr_first_point(), "fixed_end_point", s->first_node_id());
=====================================
src/coastline_ring_collection.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/nodegrid2opl.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/options.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
@@ -70,7 +70,7 @@ void print_version() {
for (const auto& type : osmium::io::supported_pbf_compression_types()) {
std::cout << " " << type;
}
- std::cout << "\n\nCopyright (C) 2012-2025 Jochen Topf <jochen at topf.org>\n"
+ std::cout << "\n\nCopyright (C) 2012-2026 Jochen Topf <jochen at 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";
=====================================
src/options.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/osmcoastline.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
@@ -90,7 +90,9 @@ void add_polygons_in_multi_to(polygon_vector_type *polygons,
if (p->IsValid()) {
polygons->push_back(std::move(p));
} else {
- output.add_error_line(make_unique_ptr_clone<OGRLineString>(p->getExteriorRing()), "invalid");
+ auto* ring = p->getExteriorRing()->clone();
+ auto ls = std::unique_ptr<OGRLineString>(OGRGeometryFactory::forceToLineString(ring)->toLineString());
+ output.add_error_line(std::move(ls), "invalid");
std::unique_ptr<OGRGeometry> buf0{p->Buffer(0)};
if (buf0 && buf0->getGeometryType() == wkbPolygon && buf0->IsValid()) {
buf0->assignSpatialReference(srs.wgs84());
=====================================
src/osmcoastline_filter.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
@@ -96,7 +96,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-2025 Jochen Topf <jochen at topf.org>\n"
+ << "Copyright (C) 2012-2026 Jochen Topf <jochen at 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";
=====================================
src/osmcoastline_segments.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
@@ -152,7 +152,7 @@ int main(int argc, char *argv[]) {
}
case 'V':
std::cout << "osmcoastline_segments " << get_osmcoastline_long_version() << " / " << get_libosmium_version() << '\n'
- << "Copyright (C) 2012-2025 Jochen Topf <jochen at topf.org>\n"
+ << "Copyright (C) 2012-2026 Jochen Topf <jochen at 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";
=====================================
src/osmcoastline_ways.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
@@ -115,7 +115,7 @@ int main(int argc, char* argv[]) {
if (!std::strcmp(argv[1], "--version") || !std::strcmp(argv[1], "-V")) {
std::cout << "osmcoastline_ways " << get_osmcoastline_long_version() << " / " << get_libosmium_version() << '\n'
- << "Copyright (C) 2012-2025 Jochen Topf <jochen at topf.org>\n"
+ << "Copyright (C) 2012-2026 Jochen Topf <jochen at 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";
=====================================
src/output_database.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
@@ -50,13 +50,13 @@ OutputDatabase::OutputDatabase(const std::string& driver, const std::string& out
m_layer_water_polygons(m_dataset, "water_polygons", wkbPolygon, layer_options()),
m_layer_lines(m_dataset, "lines", wkbLineString, layer_options()) {
- m_layer_error_points.add_field("osm_id", OFTString, 10);
+ m_layer_error_points.add_field("osm_id", OFTInteger64, 1);
m_layer_error_points.add_field("error", OFTString, 16);
- m_layer_error_lines.add_field("osm_id", OFTString, 10);
+ m_layer_error_lines.add_field("osm_id", OFTInteger64, 1);
m_layer_error_lines.add_field("error", OFTString, 16);
- m_layer_rings.add_field("osm_id", OFTString, 10);
+ m_layer_rings.add_field("osm_id", OFTInteger64, 1);
m_layer_rings.add_field("nways", OFTInteger, 6);
m_layer_rings.add_field("npoints", OFTInteger, 8);
m_layer_rings.add_field("fixed", OFTInteger, 1);
@@ -149,7 +149,7 @@ void OutputDatabase::commit() {
void OutputDatabase::add_error_point(std::unique_ptr<OGRPoint>&& point, const char* error, osmium::object_id_type id) {
m_srs.transform(point.get());
gdalcpp::Feature feature{m_layer_error_points, std::move(point)};
- feature.set_field("osm_id", std::to_string(id).c_str());
+ feature.set_field("osm_id", static_cast<GIntBig>(id));
feature.set_field("error", error);
feature.add_to_layer();
}
@@ -157,7 +157,7 @@ void OutputDatabase::add_error_point(std::unique_ptr<OGRPoint>&& point, const ch
void OutputDatabase::add_error_line(std::unique_ptr<OGRLineString>&& linestring, const char* error, osmium::object_id_type id) {
m_srs.transform(linestring.get());
gdalcpp::Feature feature{m_layer_error_lines, std::move(linestring)};
- feature.set_field("osm_id", std::to_string(id).c_str());
+ feature.set_field("osm_id", static_cast<GIntBig>(id));
feature.set_field("error", error);
feature.add_to_layer();
}
@@ -181,7 +181,7 @@ void OutputDatabase::add_ring(std::unique_ptr<OGRPolygon>&& polygon, osmium::obj
function from the GEOS C interface to get to the reason.
*/
GEOSContextHandle_t contextHandle = OGRGeometry::createGEOSContext();
- char* r = GEOSisValidReason(polygon->exportToGEOS(contextHandle));
+ const char* const r = GEOSisValidReason(polygon->exportToGEOS(contextHandle));
std::string reason = r ? r : "";
OGRGeometry::freeGEOSContext(contextHandle);
@@ -211,7 +211,7 @@ void OutputDatabase::add_ring(std::unique_ptr<OGRPolygon>&& polygon, osmium::obj
}
gdalcpp::Feature feature{m_layer_rings, std::move(polygon)};
- feature.set_field("osm_id", static_cast<int>(osm_id));
+ feature.set_field("osm_id", static_cast<GIntBig>(osm_id));
feature.set_field("nways", static_cast<int>(nways));
feature.set_field("npoints", static_cast<int>(npoints));
feature.set_field("fixed", fixed);
=====================================
src/output_database.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/return_codes.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/srs.cpp
=====================================
@@ -1,6 +1,6 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/srs.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/stats.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
=====================================
src/util.hpp
=====================================
@@ -3,7 +3,7 @@
/*
- Copyright 2012-2025 Jochen Topf <jochen at topf.org>.
+ Copyright 2012-2026 Jochen Topf <jochen at topf.org>.
This file is part of OSMCoastline.
View it on GitLab: https://salsa.debian.org/debian-gis-team/osmcoastline/-/compare/ef9aa319d291ecda482cfa840d51a4b4be45805a...355d166a5e1db032b8d5c7f27b3324e4193384ef
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/osmcoastline/-/compare/ef9aa319d291ecda482cfa840d51a4b4be45805a...355d166a5e1db032b8d5c7f27b3324e4193384ef
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20260118/cf80ca66/attachment-0001.htm>
More information about the Pkg-grass-devel
mailing list