wiki:GeospatialDataViewerInPgAdmin4ForPostGIS

Implement Geospatial Data Viewer in pgAdmin4 for PostGIS

Abstract

pgAdmin is the GUI management tool for PostgreSQL. The latest version pgAdmin4 is web-based and written in Python and jQuery with Bootstrap, using the Flask framework. But currently there is no geospatial data viewer in pgAdmin4, and external applications, such as QGIS are required if we want to browser the data in a map. It’s not convenient for users to view geometries directly in pgAdmin4 “Data Output” table panel.

I propose to implement a geospatial data viewer in pgAdmin4 that will allow users to view the tables in a spatial database and the results of queries executed. With the viewer I intend to develop, users can directly view geospatial data on a map within the pgAdmin4 GUI.

Weekly Reports:

Community Bonding Period (April 24 - May 13)

  • Set up dev environment and my wiki page for TODO list and weekly report.
  • Introduce myself and this project in pgAdmin4, PostGIS and SoC mailing list.
  • Discuss with mentors about the implementation plan. Here is the draft of my technical notes: GSoC Technical notes
  • Remain constant touch with my mentors using Google Hangouts. Set up user requirements and discuss the design details with mentors. Settle the final design according to user requirements and feasibility. Here is the design document: pgAdmin4 Geo Viewer Design Document
  • Get deeper into pgAdmin4 source code and learn more about require.js lib.

Week 1 (May 14 - 20)

Create web UI for viewing map[part one]: Add the "map view" panel in pgadmin4 sqleditor.

Week 2 (May 21 - 27)

Create web UI for viewing map[part two]: Add layout and openlayers map in the "map view" panel.

Week 3 (May 28 - June 3)

Implement parse_geo_data function to parse the query result data.

Week 4 (June 4 - 10)

Add openlayers map and render the parsed result data in the map.

Week 5 (June 11 - 17)

Add function to group geometries with the same srid and render the group with max geometry number. Related discussion can be found here.

This is the code commit link in my repository. I have also updated the design document for this function.

Week 6 (June 18 - 24)

What did you get done this period?

  • Add column option for the viewer. For query result with more than one geometry type column, the viewer will offer column option for user to choose which column to show in the map.
  • Create map_view_column_option.jsx and map_view_column_info.jsx file for the column option. See commit add column option for the viewer

What do you plan on doing next week?

  • Optimize the column option.
  • Implement geometry selection functionality.

Week 7 (June 25 - July 1)

What did you get done this period?

Now the viewer can handle multi geo columns data and mixed srids in one column, here is the screen shot:

What do you plan on doing next week?

  • It will still throw many warnings when importing openlayers lib, I will ask for help in the pgadmin community.
  • Continue implementing geometry selection functionality mentioned in the design document 4.3.

Week 8 (July 2 - 8)

What did you get done this period?

Now the viewer support geometry selection functionality, here is the screen shot:

What do you plan on doing next week?

  • Fix the bug caused by unknown SRID.
  • Implement property table to show the property of selected geometry.

Week 9 (July 9 - 15)

What did you get done this period?

What do you plan on doing next week?

  • Create and execute unit tests in the regression frame for all modules to help catch regressions in the code.
  • Check the code style to meet the pgAdmin coding standards.

Week 10 (July 16 - 22)

What did you get done this period?

This visualiser is independent from the geoviewer and is in the geometry_visualiser branch. Here is the screen shot:

What do you plan on doing next week?

Week 11 (July 23 - 29)

What did you get done this period?

What do you plan on doing next week?

  • Send the patch in pgAdmin-hacker mailing list for code review.
  • Prepare for final evaluation.

Week 12 (July 30 - August 5)

What did you get done this period?

What do you plan on doing next week?

  • Create the final report page and finish the final evaluation.
Last modified 12 months ago Last modified on Aug 18, 2018 3:44:51 AM

Attachments (10)