Proposal For GSoC 2018
Proposal For GSoC 2018
Contact Details
Project
Project Name
Project Description
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. Refer to the project wiki to get more detail.
For future development, the viewer can be expanded for selecting and editing
geospatial data directly in the GUI.
Predesign
Interface Design: pgAdmin4 web interface uses several panels to display the
result of queries. As a preliminary design, I propose to develop an additional
panel to display the map within (see Figure 1). The browser renders both the
grid panel to show table and the viewer panel to show map after each query.
Then users can browse the geometries by zooming and panning in the map.
Program Flow Design: After each user query, the browser receives the output
data if the query succeeds. Then the “Data Output” renders table to show output
data. If the data contains geometry data such as point, polyline and polygon,
then the program will parse the data (maybe in different format such as WKB,
WKT, GeoJSON etc.) and render “Geo Viewer” panel to show map (see Figure
2).
Figure 2: Flow Chart
● Introduce myself and this project in pgAdmin4, PostGIS and SoC mailing
list.
● 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.
● Discuss with mentors about the implementation plan.
● Try to fix bugs to get further understanding for pgAdmin4 source code
and require.js lib.
● Set up dev environment and my wiki page for TODO list and weekly
report.
Do you have any known time conflicts during the official coding period?
> No, I don’t have any time conflicts with the official coding time.
Extra Information
Studies
I am familiar with Python, C/C++, Java and have the basic knowledge of html,
JavaScript and CSS. Also, I have the experience in using Flask framework and
OpenLayers. I use Window 10 and Ubuntu 16.04 LTS for daily basis.
As a GIS student, I use GIS software and development tools almost every day. I
use PostGIS, ArcMap, QGIS, ENVI to for spatial analysis and OpenLayers,
GeoTools, Arcpy, GeoServer for developing. I have the knowledge of
geospatial data (e.g. projection system, spatial analysis and mapping) as well as
part of OGC standards (e.g. Simple Features Interface Standard, WMS, and
WFS). Here are my two personal GIS projects:
● Weather Map of China. The project is to show the real-time weather in
China. I develop a web crawler to get real-time weather data of each
region in China (see Figure 4), and then display the result in web map
using OpenLayers. The weather data and geojson data are published using
Flask API. Users can browse each place by dragging, clicking, scrolling
and searching. Please click here to view the Weather Map. The source
code is available on my github.
Figure 4: Weather Map
● Light GIS. A light GIS desktop software for showing, querying, editing
and rendering map. It is written in C# from the scratch without any
third-party library. The source code is available on my github.
This is my first time to apply for Google Summer of Code. I did not submit a
proposal to any other organisation.