Skip to content

Releases: jjrom/itag

iTag v3.1.0

16 May 09:05
Compare
Choose a tag to compare

Check geometry validity before tagging. Throws exception if input footprint is invalid

iTag v3.0.18

19 Apr 13:16
Compare
Choose a tag to compare

Add individual "areaLimit" option for all Taggers

iTag v3.0.17

31 Aug 07:00
Compare
Choose a tag to compare

Correct issue with invalid character in install scripts

v3.0.16

16 Aug 15:40
Compare
Choose a tag to compare

Typo in Tagger_Always

iTag v3.0.15

05 Sep 09:07
Compare
Choose a tag to compare

Replace previous v3.0.14 release (a commit was missing !)

iTag v3.0.14

01 Sep 14:39
Compare
Choose a tag to compare

Clean code to avoid exception with invalid input geometries

iTag v3.0.13

02 May 14:40
Compare
Choose a tag to compare

Correct an issue in pcover and gcover percentage for region entities

iTag v3.0.12

23 Apr 20:05
Compare
Choose a tag to compare

Add Tagger_Toponyms.
This tagger returns array of toponyms contained within the input footprint. This array is ordered by ascending distance between the footprint centroid and the toponym

iTag v3.0.11

31 Mar 13:50
Compare
Choose a tag to compare

Release v3.0.10 is broken - use this release !

iTag v3.0.9

31 Mar 11:41
Compare
Choose a tag to compare

Updates/corrections of installation procedure and scripts (thanks to @RailwayMan )
Add true support for input polygons crossing the -180/180 line

BREAKING CHANGE
On existing iTag installation, you must add the ST_SplitDateLine function to the database - see below

   CREATE OR REPLACE FUNCTION ST_SplitDateLine(geom_in geometry)
   RETURNS geometry AS $$
   DECLARE
            geom_out geometry;
            blade geometry;
   BEGIN

    blade := ST_SetSrid(ST_MakeLine(ST_MakePoint(180, -90), ST_MakePoint(180, 90)), 4326);

IF ST_XMin(geom_in) < -90 AND ST_XMax(geom_in) > 90 THEN

        -- Add 360 to all negative longitudes
        WITH tmp0 AS (
            SELECT geom_in AS geom
        ), tmp AS (
            SELECT st_dumppoints(geom) AS dmp FROM tmp0
        ), tmp1 AS (
            SELECT (dmp).path,
            CASE WHEN st_X((dmp).geom) < 0 THEN st_setSRID(st_MakePoint(st_X((dmp).geom) + 360, st_Y((dmp).geom)), 4326) 
            ELSE (dmp).geom END AS geom
            FROM tmp
            ORDER BY (dmp).path[2]
        ), tmp2 AS (
            SELECT st_dump(st_split(st_makePolygon(st_makeline(geom)), blade)) AS d
            FROM tmp1
        )
        SELECT ST_Union(
            (
                CASE WHEN ST_Xmax((d).geom) > 180 THEN ST_Translate((d).geom, -360, 0, 0)
                ELSE (d).geom END
            )
        )
        INTO geom_out
        FROM tmp2;

    ELSE
        RETURN geom_in;
END IF;

RETURN geom_out;
   END
   $$ LANGUAGE 'plpgsql';
   EOF