Skip to content

freemapper v0.17.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 16:19
· 376 commits to main since this release

Added

  • Forest map example: Dammheide in Berlin, 1:10 000, with the OOM map, the OCAD starting point and the candidates PDF (ADR 0116).
  • Forest maps (ADR 0116): the contour interval can be set when making a map: --contour-interval <metres>|auto on init, derive and run, the MCP parameter contour_interval of create_project and start_pipeline (0 means automatic), and the field "Contour interval" on the area page, also for an existing project. The choice is saved in freemapper.toml, and the next derive traces the contours at it. A value that is no positive number is refused before a project folder is made.
  • Permit notes (ADR 0117): freemapper permits <dir> and run --permits write permits.md and permits.json next to the map. For the map area the file names the state, Kreis, Amt and Gemeinde from the BKG's VG250, the protected areas of the BfN, further protected areas and the operators and owners from OpenStreetMap, each with its share of the area, and says whom one usually asks. It is a hint, not legal advice. The notes are made only on request; only then does freemapper ask geodienste.bfn.de and sgx.geodatenzentrum.de. It reads the OSM extract from the cache, and --offline takes the data stored in data/permits/. The area page has the option "Permit notes" for it, the MCP server the tool permits_for_area (a job; project_status carries the text as permits_md) and permits on start_pipeline and open_area_selector. project_status now lists the written files (files) of every job. The map, freemapper.toml and ATTRIBUTION.txt stay unchanged. Described in the user manual, chapter 12; the chapters after it move up by one.
  • Forest maps (ADR 0116, addendum): when the contour interval is not the kind's, for example 2.5 m in a flat forest, derive writes it into freemapper.toml as [contours] interval_m. freemapper-print reads it there through the suite contract (freemapper-core 0.25.0) and no longer proposes 5 m. Projects at the kind's interval keep their file unchanged.
  • Forest maps (ADR 0116): --kind forest makes a map after ISOM 2017-2 at 1:15 000 (default), 1:10 000 or 1:7500, with the symbols at 100, 150 or 200 %. It is meant for a quick training in small forests. The paths come from OSM and go straight onto the map, sorted into the path classes 502 to 507; stairs become 532. Sidewalks along roads, crossings, driveways and parking aisles are left out. The forest stays white paper: where OSM or ALKIS says forest, freemapper draws no open land, not over ALKIS parks either. The only green is OSM scrub, as a candidate. Contours lie every 5 m, every 2.5 m in flat land; contour_interval_m in freemapper.toml sets the interval. The symbol set is ISOM 2017-2 from OpenOrienteering Mapper with the colours of IOF Rev. 4. Tried on the Dammheide and the Mittelheide in Berlin. The help, the MCP server and the area page know the kind, its scales and its error messages.

Changed

  • freemapper-core 0.25.0: the suite contract knows the scales of the forest map (0.23.0) and the contour interval in [contours] interval_m (0.25.0), and freemapper writes both.
  • Internal: placing the objects by the content settings now lives in the new module "map assembly" (build/assembly.rs, ADR 0115) instead of between the file reads of the project. It reads no file and can be tested with a few objects in memory. First of three steps; the maps stay byte for byte.
  • Internal: resolving the duplicates between the sources (register before ALKIS before survey before OSM) and the point generalization now live in the map assembly too (assembly::resolve, ADR 0115, step 2). The project draws the sources and hands them over; the order of the steps is in one place.
  • Internal: the map assembly now builds the whole map from the data that was read (assembly::build, ADR 0115, step 3). The project reads the folder in one place and makes the documents from the result; contours, landforms and vegetation are drawn in modules of their own under build/. A test can build a map without a project folder.
  • Internal: which of Berlin's layers are registers is said in one place only, in Berlin's adapter. The rank of duplicate objects, the draw rules for trees and the credit read it from there instead of from lists of their own. Maps and credits do not change (update in ADR 0114).
  • Internal: a tree cadastre is asked under the host rules of the adapter that brings it and counts for that adapter's ground. Before, the engine looked the adapter up by the id in the row of the cadastre. Had the row named another adapter of the registry, the cadastre would have been asked for that adapter's ground and under its host rules; with an unknown id it was left out. No adapter of today was affected: a manifest always writes its own id (update in ADR 0114).

Fixed

  • Forest maps (ADR 0116): impassable vegetation is ISOM 2017-2 410 instead of the first edition's 411. The path classes 502 to 505 belong to the content group paths, so --content-set paths=candidates moves every path. Stairs tagged incline=down run uphill as on sprint maps. A forest map no longer fetches the areas and kerbs of the Berlin street survey or the city tree cadastres, which it does not draw. The test whether an area is flat reads the terrain model every 5 m only. The margin names the interval the contours were traced at, also when contour_interval_m was changed since.
  • Hamburg, Saarland, Saxony-Anhalt and adapters from folders: when the surface model cannot be fetched, a model stored earlier stays only if it covers the map area, and the warning names the day it is from. Before, the model of another area stayed in the project with its record, and the warning spoke of a missing nDSM template in every case, even when derive still made one from the old model. The other states already behaved this way.

Download the archive for your system, unpack it and start freemapper
(Windows: freemapper.exe) from a terminal or register it with your AI assistant.
Installation and first steps: see README.md (Deutsch) / README.en.md (English) in the
archive or https://github.com/HenryJobst/freemapper#readme

  • Windows: freemapper-v0.17.0-windows-x86_64.zip
  • macOS Apple Silicon (M1 and newer): freemapper-v0.17.0-macos-arm64.tar.gz
  • macOS Intel: freemapper-v0.17.0-macos-x86_64.tar.gz
  • Linux: freemapper-v0.17.0-linux-x86_64.tar.gz (ARM: linux-arm64)

The .gz files and freemapper-update.json with its signature are for freemapper update.

What's Changed

  • A tree cadastre is asked by the rules of the adapter that brings it by @HenryJobst in #68
  • Which of Berlin's layers are registers is said once, in the adapter by @HenryJobst in #70
  • refactor(build): placing moves to the map assembly (ADR 0115, step 1) by @HenryJobst in #69
  • A surface model that fails keeps a covering one and drops another, in Saarland, Hamburg and declared rasters too by @HenryJobst in #73
  • Forest map kind (ISOM 2017-2, ADR 0116) by @HenryJobst in #74
  • refactor(build): the map assembly resolves the duplicates (ADR 0115, step 2) by @HenryJobst in #72
  • Forest maps: the minor review findings (ADR 0116) by @HenryJobst in #75
  • refactor(build): the map assembly builds the map from stored data (ADR 0115, step 3) by @HenryJobst in #76
  • Permit notes for a map area: protected areas (BfN), administrative units (VG250) and operators (OSM) by @HenryJobst in #77
  • Forest maps: the sidecar names a contour interval that is not the kind's (core v0.25.0) by @HenryJobst in #78
  • The contour interval can be set on the command line, through MCP and on the area page (ADR 0116) by @HenryJobst in #79
  • Example: a forest map of the Dammheide in Berlin (ADR 0116) by @HenryJobst in #80

Full Changelog: v0.16.0...v0.17.0