finds.dev← search

// the find

NationalSecurityAgency/qgis-shapetools-plugin

★ 166 · Python · GPL-2.0 · updated Jun 2024

Shape Tools creates geodesic shapes and includes a number of geodesic tools for QGIS including the XY to Line tool, geodesic densify tool, geodesic line break, geodesic measure tool, geodesic measurement layer, geodesic scale, rotate and translate tool, and digitize points at an azimuth & distance tools.

Shape Tools is a QGIS plugin for generating shapes and running distance, bearing, and transform operations on the ellipsoid rather than in a flat projection. It suits GIS analysts working on range rings, sensor footprints, survey traverses, or anything else where Earth curvature changes the answer.

- Geodesic calculations use the vendored GeographicLib (Karney's algorithms), not haversine or spherical approximations, and the ellipsoid can be changed in Settings.

- The same geodesic core is exposed as Processing algorithms, Field Calculator functions such as st_geodesic_distance and st_geodesic_bearing, and interactive map tools, so one expression can drive geometry across a whole layer.

- Shape parameters accept data-defined overrides per feature, so a point layer with radius, azimuth, and width columns yields a varied set of shapes in one run instead of one drawing at a time.

- GeographicLib is bundled under ext-libs, so users don't have to pip-install anything into QGIS's Python environment, which is where most plugin installs break.

- The last push was June 2024, and the README doesn't say which QGIS versions it targets. The directory tree shows no test files for plugin code; the only test file belongs to vendored GeographicLib.

- Output defaults to a temporary layer that won't be saved with the QGIS project. The README mentions this, but it's an easy trap for anyone using the tool on real work for the first time.

- The docs have typos throughout ('algoirthm', 'transfrom', 'Sprecifies', 'asimuth'), and the st_geodesic_bearing example contains a stray nested make_point call, so the expression examples can't be pasted as written.

- Most of the README covers novelty shapes (rose, polyfoil, hypocycloid, heart), while the more useful tools (XY to Line, the densifier, the measurement layer) get less space. The tree also ships an unfinished/ folder with geodesicGrid.py.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →