Difference between revisions of "Projets-2016-2017-GeoDiff"

From air
Jump to navigation Jump to search
 
(6 intermediate revisions by 2 users not shown)
Line 37: Line 37:
   
 
* UML diagrams (Use Case and Sequence)
 
* UML diagrams (Use Case and Sequence)
  +
[[Projets-2016-2017-GeoDiff/UML|UML]]
   
 
== Week 5 (February 6th - February 12th) ==
 
== Week 5 (February 6th - February 12th) ==
Line 64: Line 65:
 
*** Command-line argument parser (using jopt-simple) that currently takes two files and an optional unique identifier for each element
 
*** Command-line argument parser (using jopt-simple) that currently takes two files and an optional unique identifier for each element
 
*** Support for GeoJSON as input files
 
*** Support for GeoJSON as input files
*** Output delta as GeoJSON file, with each feature having additional properties used by GeoDiff tools (currently geodiff-type which identifies the type of modification, i.e 'add', 'del', 'mod', or 'id')
+
*** Output delta as GeoJSON file, with each feature having additional properties used by GeoDiff tools (currently 'geodiff-type' which identifies the type of modification, i.e 'add', 'del', 'mod', or 'id')
 
** To do:
 
** To do:
 
*** Support more formats
 
*** Support more formats
Line 71: Line 72:
 
** Technologies used:
 
** Technologies used:
 
*** Java
 
*** Java
*** Gson (from Google) for manipulating JSON objects (under Apache License 2.0, [https://github.com/google/gson Github repo])
+
*** Gson (from Google) for manipulating JSON objects (under Apache License 2.0, [https://github.com/google/gson GitHub repo])
*** GeoJSON addon for Gson (from user [https://github.com/filosganga filosganga]) that adds convenient structures and methods for manipulating GeoJSON objects (under Apache License 2.0, [https://github.com/filosganga/geogson Github repo])
+
*** GeoJSON addon for Gson (from user [https://github.com/filosganga filosganga]) that adds convenient structures and methods for manipulating GeoJSON objects (under Apache License 2.0, [https://github.com/filosganga/geogson GitHub repo])
 
*** JOpt Simple for parsing command line options (under The MIT License, [https://pholser.github.io/jopt-simple/ website])
 
*** JOpt Simple for parsing command line options (under The MIT License, [https://pholser.github.io/jopt-simple/ website])
 
* Browser tool (JavaScript)
 
* Browser tool (JavaScript)
Line 99: Line 100:
 
* To do:
 
* To do:
 
** Merge the map view and data inputs (web interface)
 
** Merge the map view and data inputs (web interface)
  +
  +
== Week 11 (March 27th - April 2nd) ==
  +
  +
* Command-line tool
  +
** Done:
  +
*** Tests done and successful
  +
*** Flaw detected: the parser doesn't allow empty (possibly null too?) JSON objects (like empty geometry objects)
  +
** To do:
  +
*** Add options to filter output data
  +
*** Javadoc
  +
** Done:
  +
*** Tests (see section below) with a UI for easier testing
  +
*** Squashed bugs in the comparison functions
  +
* Browser tool
  +
** Done:
  +
*** Option to download a zip archive containing four files (additions, deletions, modifications and all three) in GeoJSON
  +
*** Use of PHP to create the files
  +
*** Add geodiff-type property to all features
  +
** To do:
  +
*** Clean up code and improve security (for ex. prevent the modification of critical variables)
  +
*** Merge the map view and data inputs - almost there
  +
* Tests
  +
** Test sets in GeoJSON to facilitate the checks in Java
  +
** All the geometrical structures have been tested: Point, MultiPoint, LineString, MultiLineString, Polygon and MultiPolygon (with consideration of the height for JavaScript)

Latest revision as of 10:43, 3 April 2017

Preambule

The project subject GeoDiff

This project is handled by three Polytech students: AMAURIN Alexandre, BECHER Hervé, BROCHIER Aymeric

Project Presentation

The goal of this project is to identify the differences between two spatial data sets and visualize them.

Team

  • Supervisors: Nicolas Palix
  • Members: AMAURIN Alexandre, BECHER Hervé, BROCHIER Aymeric

Progress of the project

The project started January 14th, 2015.

Week 1 (January 09th - January 15th)

  • Project selection

Week 2 (January 16th - January 22th)

  • Project discovery
  • AIR page and GitHub project setup
  • Team organization
  • Software Requirement Specification

SRS

Week 3 (January 23th - January 29th)

Week 4 (January 30th - February 05th)

  • UML diagrams (Use Case and Sequence)

UML

Week 5 (February 6th - February 12th)

  • First look at Javascript and Leaflet
  • Finished first SRS version

Week 6 (February 13th - February 19th)

  • Progress at the level of the delta and at the level of the graphic display.

Week 7 (February 20th - February 26th)

  • Holiday break

Week 8 (February 27th - March 5th)

  • Rough interface (using Leaflet) for showing delta using layers
  • Files input and unique identifier selection

Week 9 (March 6th - March 12th)

  • Command-line tool (written in Java) development started
    • Pretty rough (prototype)
    • Done:
      • Delta computing module
      • Command-line argument parser (using jopt-simple) that currently takes two files and an optional unique identifier for each element
      • Support for GeoJSON as input files
      • Output delta as GeoJSON file, with each feature having additional properties used by GeoDiff tools (currently 'geodiff-type' which identifies the type of modification, i.e 'add', 'del', 'mod', or 'id')
    • To do:
      • Support more formats
      • Add abstraction layers for internal manipulation of data sets (adapters, etc.)
      • Allow the user to add his own module(s) for parsing input files
    • Technologies used:
      • Java
      • Gson (from Google) for manipulating JSON objects (under Apache License 2.0, GitHub repo)
      • GeoJSON addon for Gson (from user filosganga) that adds convenient structures and methods for manipulating GeoJSON objects (under Apache License 2.0, GitHub repo)
      • JOpt Simple for parsing command line options (under The MIT License, website)
  • Browser tool (JavaScript)
    • Done: (...)
    • To do: (...)
  • To do:
    • Merge the map view and data inputs (web interface)

Week 10 (March 20th - March 26th)

  • Command-line tool
    • Made internal data structures all use filosganga's geogson classes
    • Added parsers for reading and converting their input into our internal Element structure
      • Allows for simple modules for other formats
      • Currently GeoJSON and CSV supported
    • Added Javadoc
    • To do:
      • Improve the modularity of the program (=> better API)
      • Maybe write our own (simplified) data structures
  • Created test sets to check if the Java and JavaScript tools are consistent in regard to the GeoJSON standard
    • Done: tests on JavaScript
    • To do: tests on Java
  • Browser tool
    • Done: (...)
    • To do: (...)
  • To do:
    • Merge the map view and data inputs (web interface)

Week 11 (March 27th - April 2nd)

  • Command-line tool
    • Done:
      • Tests done and successful
      • Flaw detected: the parser doesn't allow empty (possibly null too?) JSON objects (like empty geometry objects)
    • To do:
      • Add options to filter output data
      • Javadoc
    • Done:
      • Tests (see section below) with a UI for easier testing
      • Squashed bugs in the comparison functions
  • Browser tool
    • Done:
      • Option to download a zip archive containing four files (additions, deletions, modifications and all three) in GeoJSON
      • Use of PHP to create the files
      • Add geodiff-type property to all features
    • To do:
      • Clean up code and improve security (for ex. prevent the modification of critical variables)
      • Merge the map view and data inputs - almost there
  • Tests
    • Test sets in GeoJSON to facilitate the checks in Java
    • All the geometrical structures have been tested: Point, MultiPoint, LineString, MultiLineString, Polygon and MultiPolygon (with consideration of the height for JavaScript)