Hi Larry,

Thanks for the input,
I followed your suggestion to add a warning in the status bar.
I did the test for the MultiPolygon case only though.

Not sure it is useful in the general case. Maybe it would be
better to make the plugin consistent with the edit tools option
"accept invalid geometry". I think it is not yet.

Michaël

Hi Michaël,

Echoing what I think you are proposing:

1) when Combine Selected Features is invoked, a basic topology validity check is done on the result.

2) Any errors should be reported in the status bar or the Output Window.

3) If an invalid geometry results from building a MultiPolygon, a GeometryCollection is built instead.

+1 if this is the plan. -1 if the plan is to just build a GeometryCollection instead.

regards,

Larry

On Tue, Apr 9, 2013 at 1:36 PM, Michaël Michaud <michael.mich...@free.fr <mailto:michael.mich...@free.fr>> wrote:

    Hi,
    > Is it in OJ possible to check first for valid
    > geometries when
    > "Combine Selected Features"
    > or is this a great problem?
    >
    > If it is a great problem maybe it is better
    > "Combine Selected Features"
    > makes always a geometrycollection?
    There are several points :

    1 - in the step by step process you described, error should
    have been thrown while combining the two polygons, not
    while moving the resulted invalid multipolygon

    2 - I agree that in this case, building a valid GeometryCollection
    is better than building an invalid Multipolygon, even if
    GeometryCollection are much less useful (many operations
    accepting MultiPolygon will fail on GeometryCollection).
    If if no one has any objection, I propose to do the change.

    3 - you surely knows that OpenJUMP has a hidden option to
    accept/refuse invalid geometries during edit operations (in
    this case, it is of no help though)

    Regards,

    Michaël
    >
    > What do you think?
    >
    > Regards
    >
    > Uwe
    >
    > Am 09.04.2013 03:21, schrieb Martin Davis:
    >> As Michael and Stefan point out, Polygons in a MultiPolygon must be
    >> edge-disjoint (which another way of stating the formal
    definition "must
    >> only touch at a finite number of points".  If they touched along an
    >> edge, that would cause an infinite number of points to be
    coincident).
    >>
    >> Another way of looking at this is that MultiPolygons are in a
    sense the
    >> canonical description of a given area of the plane.  If edge
    touches or
    >> overlaps were allowed then there would be an infinite number of
    >> geometries which described the same area.
    >>
    >> Also, from the point of view of computing polygon overlay and
    spatial
    >> relationships this is a nice rule to have, since it reduces the
    number
    >> of cases which need to be checked for.  This makes the code
    simpler and
    >> more performant.  The cost is that it is necessary to ensure that
    >> MultiPolygons are valid at creation time.  This is a reasonable
    >> tradeoff, since in general geometries are queried more often
    than they
    >> are created.
    >>
    >> GeometryCollections on the other hand have no particular
    semantics -
    >> they are just "bags" of geometries.  This makes them useful for
    holding
    >> arbitrary sets of geometries, but makes them more complex (and
    sometimes
    >> slower) to process.
    >>
    >> On 4/8/2013 11:04 AM, Michaël Michaud wrote:
    >>> Hi Uwe, Stefan,
    >>>
    >>> OpenJUMP (JTS) is right, this MultiPolygon is not OGC conform
    >>>
    >>> Here is the citation :
    >>> Multipolygon
    >>> 2. The Boundaries of any 2 Polygons that are elements of a
    MultiPolygon
    >>> may not 'cross' and may touch
    >>> at only a finite number of points. (Note that crossing is
    prevented by
    >>> assertion 1 above).
    >>>
    >>> Don't ask me why, I've always thought it is strange that lines can
    >>> share their boundaries in a MultiLineString and polygons cannot
    >>> share an edge in a MultiPolygon, but it's a well established rule
    >>> that JTS follows.
    >>>
    >>> Michaël
    >>>
    >>>
    >>>> Hi Uwe,
    >>>>
    >>>> I am not sure I would call it a bug. OJ, should (try to)
    create data
    >>>> that are OGC conform, but in this case it doesn't. Which
    means, the
    >>>> case
    >>>> needs special treatment, but this is not implemented.
    >>>>
    >>>> That the multi-polygon causes an error is with the OGS SF
    >>>> specification
    >>>> = correct. However, that the geometry collection does not
    cause an
    >>>> error
    >>>> should be correct aw well, because there is, I believe,
    nothing said
    >>>> about geometry collections and their validity. Geometry
    collections
    >>>> should be allowed to have any type of geometries in what ever
    way they
    >>>> are drawn - like a "container". If we would check geometry
    collections
    >>>> for their validity it may be that people cannot store anymore
    the data
    >>>> they have. Hence, checking should be optional.
    >>>>
    >>>> But I guess here, Michael M. knows probably more about OGC
    >>>> conformance?
    >>>> I'll also cc to JTS list.
    >>>>
    >>>> cheers,
    >>>> stefan
    >>>>
    >>>> PS: the Multi-polygon:
    >>>>
    >>>> MULTIPOLYGON (((
    >>>>                 80 125,
    >>>>                 80 241,
    >>>>                 175 241,
    >>>>                 175 125,
    >>>>                 80 125
    >>>>             )), ((
    >>>>                 175 125,
    >>>>                 175 241,
    >>>>                 263 241,
    >>>>                 263 125,
    >>>>                 175 125
    >>>>             )))
    >>>>
    >>>> Am 08.04.13 09:48, schrieb Uwe Dalluege:
    >>>>> Hi Stefan,
    >>>>>
    >>>>> I am afraid I do not understand :-(
    >>>>> Do you think this is a bug in OJ?
    >>>>> The multipolygon causes an error
    >>>>> the geometrycollection not.
    >>>>>
    >>>>> Is this behaviour OGC-conform (simpel features...)?
    >>>>> What do you think?
    >>>>>
    >>>>> uwe
    >>>>>
    >>>>> Am 08.04.2013 16:36, schrieb Stefan Steiniger:
    >>>>>> Hi,
    >>>>>>
    >>>>>> so - well the situation is not so nice, as it should be valid.
    >>>>>> However,
    >>>>>> the JTS TestBuilder says the Multi-Polgyon is invalid
    because of
    >>>>>> "Self-intersection at or near point (175.0, 125.0, NaN)"
    >>>>>>
    >>>>>> Same message appears when you try to add it as a new feature.
    >>>>>>
    >>>>>> maybe you can make it valid before by running a zero-buffer
    over it?
    >>>>>>
    >>>>>> stefan
    >>>>>>
    >>>>>> Am 08.04.13 07:30, schrieb Uwe Dalluege:
    >>>>>>> Hi,
    >>>>>>>
    >>>>>>> if you put a third geometrie to the two polygons,
    >>>>>>> for instance a linestring, and combine them
    >>>>>>> you will receive a geometrycollection
    >>>>>>> and not a multipolygon.
    >>>>>>>
    >>>>>>> The geometrycollection causes *no* errors
    >>>>>>> but the multipolygon.
    >>>>>>>
    >>>>>>> Uwe
    >>>>>>>
    >>>>>>>
    >>>>>>> Am 08.04.2013 12:05, schrieb Uwe Dalluege:
    >>>>>>>> Hi,
    >>>>>>>>
    >>>>>>>> I get the error:
    >>>>>>>>
    >>>>>>>> "The new geometry is invalid. Cancelled."
    >>>>>>>> and I am not shure whether this error is correct.
    >>>>>>>>
    >>>>>>>> 1. Switch "Snap to vertices" option.
    >>>>>>>>
    >>>>>>>> 2. Draw a rectangle.
    >>>>>>>>
    >>>>>>>> 3. Draw a second rectangle with two identical
    >>>>>>>> vertices from the first rectangle (with snap).
    >>>>>>>>
    >>>>>>>> 4. Select the two rectangles and
    >>>>>>>> "Combine Selected features"
    >>>>>>>>
    >>>>>>>> 5. Try to move this multipolygon with
    >>>>>>>> "Move Selected Items Tool".
    >>>>>>>>
    >>>>>>>> 6. The error appears
    >>>>>>>> "The new geometry is invalid. Cancelled."
    >>>>>>>>
    >>>>>>>> 7. The QA>Validate Selected Layers...
    >>>>>>>> causes a self-intersection in *one* point.
    >>>>>>>>
    >>>>>>>> Is this a bug in OJ (a precision-problem)
    >>>>>>>> or is the new geometry really invalide?
    >>>>>>>>
    >>>>>>>> Uwe
    >>>>>>>>
    >>>>>>>>
    
------------------------------------------------------------------------------
    >>>>>>>>
    >>>>>>>>
    >
    >


    
------------------------------------------------------------------------------
    Precog is a next-generation analytics platform capable of advanced
    analytics on semi-structured data. The platform includes APIs for
    building
    apps and a phenomenal toolset for data science. Developers can use
    our toolset for easy data analysis & visualization. Get a free
    account!
    http://www2.precog.com/precogplatform/slashdotnewsletter
    _______________________________________________
    Jump-pilot-devel mailing list
    Jump-pilot-devel@lists.sourceforge.net
    <mailto:Jump-pilot-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel




------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter


_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to