Google Summer of Code 2015

Port Network Analysis Extension to gvSIG 2.x branch

My proposal is to develop a plugin to migrate all features of route calculation from the 1.* gvSIG version to the latest one. These are the main tasks to do:

  • Route management to get the shortest path
  • Optimizing the order of stops on a route
  • Calculation of service areas
  • Location of the nearest event
  • Calculate matrices Origin - Destination
  • Calculation of minimum spanning tree

Introduction

GvSIG, as thick client desktop GIS, is a viable free solution in their latest versions in which there has been a refactoring, but is missing features that it had, for example, Network Analysis Extension.

The aim of this project is to port this extension developed on versions "1. *" to versions "2. *", to perform the same processes in the last version.

Background

I've been linked to gvSIG from the beginning as developer of many of its extensions and the base, what motivates me to try to improve the functionality offered to end users.

Nowadays, with the refactoring, I lost some linkage, and would like to make this development to keep abreast of the latest improvements in their refactoring on gvSIG and introduce in the calculation of routes developed.

The relationship with OSGeo would be to extend gvSIG, which is part of the partnership and shares its interest in free software.

Detailed Timeline

1. Analysis of the gvSIG development environment changes. Definition of requirements to implement the functionality. Week 1

2. Development

2.1. Network Analysis Extension, creating the structure. Week 2

2.2. Route management to get the shortest path and refactor all elements. Week 3 - 5

2.3. Optimizing the order of stops on a route and create an installer. Week 6 - 8

2.4. Calculation of service areas. Week 9 - 11

2.5. Location of the nearest event.

2.6. Calculate matrices Origin - Destination and create an installer.

2.7. Calculation of minimum spanning tree.

3. Testing of the new tool and create an installer.

4. Solving errors that emerged in test phase, documentation and create an installer. Week 12

Week 1

This is my first report for the Port Network Analysis Extension to gvSIG 2.x branch project.

1) What do I have completed this week?

  • I have analysed the necessary changes for the development of version change.
  • I have defined of requirements to implement the functionality.
  • I have initiated the development of the creation of the graph network to use the new structure created in gvSIG for data processing and data access.

2) What am I going to achieve for next week?

I want to create the Network Analysis Extension, creating the structure to next uses by other extensions to calculate the route.

3) Is there any blocking issue?

I had problems with the user gvSIG SVN repository to upload the changes I made in the code.

Week 2

1) What do I have completed this week?

  • I have finished the development of the creation of the graph network to use the new structure created in gvSIG for data processing and data access.

2) What am I going to achieve for next week?

I want to create Route management to get the shortest path and create an installer.

3) Is there any blocking issue?

No problems.

Week 3

1) What do I have completed this week?

  • I solved the translated texts of the panels.
  • I started to calculate the route management to get the shortest path.

2) What am I going to achieve for next week?

I want to finished Route management to get the shortest path and create an installer.

3) Is there any blocking issue?

I found problems in the core of gvsig and have opened two tickets:

Week 4

1) What do I have completed this week?

  • I refactor Flag, Cost, Edge... to extract the interface.
  • I continue to calculate the route management to get the shortest path.

2) What am I going to achieve for next week?

I want to finished Route management to get the shortest path, end the refactor and create an installer.

3) Is there any blocking issue?

I found problems to refactor some elements.

Week 5

1) What do I have completed this week?

  • I solve some problems and finished the route management to get the shortest path.
  • I added the posibility to load network from file.
  • I solved the load to some images to show de route report.

2) What am I going to achieve for next week?

  • I want to start with the optimizing the order of stops on a route.

3) Is there any blocking issue?

  • I found problems to create the export of data.

Week 6

1) What do I have completed this week?

  • I added the posibility to save the route to vectorial format.
  • I start with the optimizing the order of stops on a route.

2) What am I going to achieve for next week?

  • I want to continue with the optimizing the order of stops on a route.

3) Is there any blocking issue?

  • None.

Week 7

1) What do I have completed this week?

  • I added the posibility to save the flags to vectorial format.
  • Refactor of some clases.
  • I continue with the optimizing the order of stops on a route.

2) What am I going to achieve for next week?

  • I want to finish with the optimizing the order of stops on a route and generate a installer.

3) Is there any blocking issue?

  • None.

Week 8

1) What do I have completed this week?

  • I added the posibility to load the flags from vectorial format.
  • I finish the optimizing the order of stops on a route.

2) What am I going to achieve for next week?

  • I want to start with the calculation of service areas.

3) Is there any blocking issue?

  • None.

Week 9

1) What do I have completed this week?

  • I start with the calculation of service areas.

2) What am I going to achieve for next week?

  • I want to continue with the calculation of service areas.

3) Is there any blocking issue?

  • The use of layer legends into new gvSIG version.

Week 10

1) What do I have completed this week?

  • I continue with the calculation of service areas.

2) What am I going to achieve for next week?

  • I want to continue with the calculation of service areas.

3) Is there any blocking issue?

  • None.

Week 11

1) What do I have completed this week?

  • I finished the calculation of service areas.

2) What am I going to achieve for next week?

  • I want solving errors, documentation and create an installer.

3) Is there any blocking issue?

  • None.

Week 12

1) What do I have completed this week?

  • I solve errors, create documentation and an installer.

2) What am I going to achieve for next week?

  • I want solving errors.

3) Is there any blocking issue?

  • None.

Week 13

1) What do I have completed this week?

  • I solve errors, create documentation and an installer.