Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-8220

GeoPolygon factory still shows problems with coplanar points

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 6.7, 7.4, 8.0
    • modules/spatial3d
    • None
    • New

    Description

      The attached patch contains two polygons that still shows problems with co-planar points. To better explain the issue I attached some images:

      1) concave.jpg:  This is the polygon we want to build. Note that we want to build the concave part, therefore the blue part is actually not part of the shape and the white part is the area cover by the shape.

      2) concaveWithTiling.jpg: The algorithm of the polygon factory tries to tile the polygon using convex polygons. In our case it creates the three colored polygons on the image. What it remains is a concave polygon.

      The problem with this polygon is that the right edge of the concave polygon contains co-planar points. These points cannot be merged into a single plane because they have different properties (internal edges or shape edges).

      Because GeoConvexPolygon and GeoConcavePolygon cannot handle polygons with co-planar points, the polygon cannot be built.

      kwright@metacarta.com, Is it possible to make this polygons support such an extreme case?

      Attachments

        1. factory.patch
          18 kB
          Ignacio Vera
        2. coplanarity-test2.patch
          3 kB
          Ignacio Vera
        3. coplanarity-test.patch
          5 kB
          Ignacio Vera
        4. concaveWithTiling.jpg
          13 kB
          Ignacio Vera
        5. concave.jpg
          11 kB
          Ignacio Vera

        Activity

          People

            kwright@metacarta.com Karl Wright
            ivera Ignacio Vera
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: