[SoC] Final Report - New rules for the Topology Framework in gvSIG Desktop

José Olivas jolivas at gvsig.com
Thu Aug 27 01:48:16 PDT 2020

Hello everyone;

The GSoC2020 period code is finished. Now is time to present the final
report of my project. The work during these three months has been an
amazing experience and a huge challenge to develop my skills. But first of
all I would like to say thank you to Google, OSGeo and gvSIG for this

This report is done according to Google's Guidelines
<https://developers.google.com/open-source/gsoc/help/work-product> and OSGeo
GSoC Admins recommendations

1. Basic info
rules for the Topology Framework in gvSIG Desktop
*Organization:* gvSIG <http://www.gvsig.com/en/home> under OSGeo

2. Abstract
The project improves the topology core of gvSIG Desktop. In these three
months I have implemented five topology rules, three new rules and two
existing rules that have some issues.

The topology rules that I want to modify are
and TopologyRuleContainsPointPolygon

   - *TopologyRuleMustBeProperlyInsidePolygonsPoint;* The rule evaluates
   the point situation in or out polygons. This point's rule returns True when
   the points falls within the polygon's area, not on the boundary or out of
   - *TopologyRuleContainsPointPolygon;* If each polygon has at least one
   point inside, the rule returns True. The points have to fall within the
   polygon's area, not on the boundary or out of it.

The new rules to create are TopologyRuleContainsOnePointPolygon
<https://github.com/jolicar/TopologyRuleMustCoverEachOtherPolygon> and UDR

   - *TopologyRuleContainsOnePointPolygon;*  If each polygon has only one
   point inside, the rule returns True. The point has to fall within the
   polygon's area, not on the boundary or out of it.
   - *TopologyRuleMustCoverEachOtherPolygon;* All dataset 2 polygon areas
   must cover the dataset 1 polygon area and all dataset 1 polygon areas must
   cover the dataset 2 polygon area too. The rule returns False when a part of
   the dataset 1 polygon area or dataset 2 polygon area is not covered or not
   completely covered.
   - *UDR (TopologyRuleUserDefinedRule);* This rule allows the user to
   define a data check expression and another expression to correct it. The
   dataset features are evaluated for the check expression and it gives a
   boolean. If the result is False,the feature dont fulfill the rule and it
   creates an entry in the error report. If the result is True, the feature
   fulfills the expression. On "Inspector de errores del Plan de topologia"
   window we can remove the feature or apply the corrective expression.

I had to create or update the documentation and create a test plan too.

3. The state of software BEFORE your GSoC
GvSIG desktop software has some topology rules but after studying these in
my internship at gvSIG Association that I have already completed I detected
some errors and important absence of useful topology rules for the users.
On development gvSIG Desktop had all GUI on his topology project. I just
need to modify the create rule GUI to allow additional parameters

4. The addition (added value)
The project is complete and the two new main additions are:

   - Five completely functional topology rules with new documentation and
   operative fixes actions.
   - New changes on topology core of gvSIG Desktop. This allows additional
   parameters in some topology rules. These changes can be useful in new rules
   implementation. Revisión 2067
   and Revisión 2174

5. Future work to this project
The project is complete but it always can be improved. A possible
improvement is the creation of new fixed action for these five topology
rules. For example, the Subtract fixed action to MustCoverEachOtherPolygon
topology rule. This fix action deletes the no overlapping part to wrong

6. Links


   - Project Wiki:


   - TopologyRuleMustBeProperlyInsidePolygonsPoint:
   - TopologyRuleContainsPointPolygon:
   - TopologyRuleContainsOnePointPolygon:
   - TopologyRuleMustCoverEachOtherPolygon:
   - UDR (TopologyRuleUserDefinedRule:


   - TopologyRuleMustBeProperlyInsidePolygonsPoint:
   - TopologyRuleContainsPointPolygon:
   - TopologyRuleContainsOnePointPolygon:
   - TopologyRuleMustCoverEachOtherPolygon:
   - UDR (TopologyRuleUserDefinedRule:
   - Topology core Revisión 2067 :
   - Topology core Revisión 2174 :


   - TopologyRuleMustBeProperlyInsidePolygonsPoint:
   - TopologyRuleContainsPointPolygon:
   - TopologyRuleContainsOnePointPolygon:
   - TopologyRuleMustCoverEachOtherPolygon:
   - UDR (TopologyRuleUserDefinedRule:

7. Images

   - TopologyRuleMustBeProperlyInsidePolygonsPoint image:
   - TopologyRuleContainsPointPolygon image:
   - TopologyRuleContainsOnePointPolygon image:
   - TopologyRuleMustCoverEachOtherPolygon image:

*NOTE: All red features are incorrect and all green features are correct.*

So it's all.

I would like to express again my gratitude to Google, OSGeo, gvSIG and all
the free software community.


José Olivas Carriquí.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/soc/attachments/20200827/b33fe0b0/attachment.html>

More information about the SoC mailing list