Abstract: At present, most of the world's famous geospatial information producers have mature product lines, which basically cover all the ...
At present, most of the world's famous geospatial information producers have mature product lines, which basically cover all the functional modules related to geographical information engineering from data collection, data editing, data management, spatial data interoperability, spatial analysis to network geographic information service registration, publishing, aggregation, etc. Sometimes, when commercial software is expensive, it is also a good choice to use open source WebGIS.
Open source WebGIS framework
A WebGIS architecture solution consists of the following three parts:
1.Geographic information database and business database: Geographic information database is used to store geographic information data (including vector, place name address, thematic and tile data); Business databases are used to store relational data from front-end websites or industry applications;
2.GIS server: GIS server is used to provide GIS services such as WMS, WTMS, WFS, and WCS;
3.Web application server: Web application servers are mainly aimed at industry applications, used to retrieve GIS services and backend business data, and display them on the front end; Web application servers provide web information browsing services, usually you see a website.
For the above components of WebGIS, an open-source WebGIS has corresponding solutions, and its architecture is as follows:
- Data production (desktop software - uDig, QGIS, etc.)
- Data storage (relational or non relational database: postgreSQL, mySQL, mongodb)
- GIS services (GIS servers: mapserver, Geoserver)
- Web services (web servers: tomcat, apache, nginx)
- Frontend rendering (OpenLayers)
Of course, it is also necessary to provide a peripheral software environment for this complete architectural approach:
- Virtualization or cloud environment (StarVcenter, VirtualBox, OpenStack, Docker: StarVcenter is quite good for private clouds)
- Operating system (Linux: CentOS, Ubuntu)
Software used in various parts of open source WebGIS
Map Data Production: Use open-source desktop GIS software such as uDig, QGIS, Grass, etc. to collect and process geographic information data.
-
uDig: http://udig.refractions.net/
-
QGIS: https://www.qgis.org/
-
Grass: https://grass.osgeo.org/
-
OpenEV: http://openev.sourceforge.net/
-
gvSIG : http://www.gvsig.com/
-
OpenJUMP: http://www.openjump.org/
-
OSSIM: http://trac.osgeo.org/ossim/
-
InterImage: http://www.lvc.ele.puc-rio.br/projects/interimage/ (Focusing on image interpretation)
-
PolSARPro: https://earth.esa.int/web/polsarpro (Polarization radar processing)
-
E-foto: http://www.efoto.eng.uerj.br/en Aerial photogrammetry
Geographic Information Data Storage: Relational data uses PostGIS or MySQL Spatial databases to store geographic information data and relational business data, while non relational data uses mongodb or HBase databases (tiles, images)
-
PostGIS: http://postgis.net/
-
PostgreSQL: https://www.postgresql.org/
-
MySQL: https://www.mysql.com
-
mongodb : https://www.mongodb.com/
-
HBase: https://hbase.apache.org/
-
rasdaman: http://www.rasdaman.org/ (Grid Database)
-
SpatiaLite: http://www.gaia-gis.it/gaia-sins/ (Lightweight Database SQLite Space Extension)
GIS server: Use GeoServer and MapServer to produce map tiles, register and publish geographic information services.
-
GeoServer: http://geoserver.org/
-
MapServer: http://mapserver.org/
-
Mapnik: http://mapnik.org/
-
TileCache: http://tilecache.org/
-
MapTiler: https://www.maptiler.com/
Web server application: Use Geomajas, Tomcat, or Apache to build a website and embed a map container in the webpage to load the map; Use nginx as a reverse proxy or load balancer.
-
Tomcat: http://tomcat.apache.org/ (Website server)
-
apache: https://www.apache.org/ (Apache can be a website server, reverse proxy, and load balancing)
-
nginx: http://nginx.org/ (load balancing, reverse proxy)
Map website dedicated server
-
GeoMoose: https://demo.geomoose.org/
-
Geomajas: http://www.geomajas.org/
Front end display of personal clients or web application servers: Geographic information services are displayed using map containers such as Openlayers, Leaflet, and Mapbox that support Javascript. Other front-end data displays use popular web APIs such as Javascript and Vue.
-
openlayers(Javascript): http://openlayers.org/
-
LeafLet: https://leafletjs.com
-
Mapbox : https://www.mapbox.com/
Note: The web application server here is a client compared to the GIS server, and a server compared to the browser.
The above provides the software that can be used to implement various aspects of WebGIS using open-source software. In actual projects, screening should be done according to project needs.
For example, uDig (QGIS)+PostgreSQL/PostGIS (mongodb)+GeoServer+Tomcat+Openlayers combination.
If there is a need for high performance and high availability, you should also use cluster technology to build a database cluster, GIS server cluster and web application server cluster ecosystem, increase service redundancy and improve service performance. After all, map service is not a simple web service, and it consumes a lot of resources. Even a Spatial query statement consumes a lot of database performance. Of course, cluster technology also has various combination methods such as software and hardware level distribution, load balancing, network, link, etc.
Note: Many online articles like to look at distributed and cluster separately. In fact, these two only describe the different aggregation states of multiple Network Computer nodes. From a decentralized perspective, multiple associated Network Computer can be seen as edge nodes distributed in different corners, and from a centralized perspective, multiple associated Network Computer nodes can be seen as a cluster of nodes.
Open source geographic data function library
The following is a list of open source geographic information function libraries that may be available for all open source software or commercial geographic information software. Among them, GDAL/ORG, PROJ.4, and GEOS are the three carriages of geographic information software or system development, which build the foundation of geographic information software.
GDAL/OGR:https://gdal.org/ Open source raster/vector spatial data conversion library
PROJ.4:https://proj.org/ Map projection library
GEOS:http://trac.osgeo.org/geos Open source geospatial data engine
pyshp:https://pypi.org/project/pyshp/ Simple function library for handling shapfile
Shapely:https://pypi.org/project/Shapely/ A function library based on GEOS for manipulating and analyzing planar geometric objects
Fiona:https://pypi.org/project/Fiona/ GDAL based function library for reading spatial vector data
Rasterio:https://pypi.org/project/rasterio/ A function library for reading geospatial grid data based on GDAL and Numpy
PIL:https://pypi.org/project/PIL/ Python library for image processing
NumPy:https://pypi.org/project/numpy/ Function Library for Matrix Scientific Computing
Scikit-image:A Python library for image processing based on scipy
GeoPandas:http://geopandas.org/ Function library for spatial analysis
SPy:http://www.spectralpython.net/ Python library for hyperspectral remote sensing image processing
GML4J:http://gml4j.sourceforge.net/ Function library for reading gml data
GSLIB:http://www.gslib.com/ Function library for spatial statistics
JTS:https://sourceforge.net/projects/jts-topo-suite/ (Support spatial analysis package of JAVA)
GeoTools:https://www.geotools.org/ (Geographic processing toolbox supporting JAVA)
GeoMesa:https://www.geomesa.org/ Distributed spatiotemporal big data analysis tool, used in conjunction with Hadoop
Open network map engine:
OSM:https://www.openstreetmap.org/ map
Navit:https://www.navit-project.org/ navigation
Open 3D engine:
Cesium:https://cesium.com/
OSG earth:http://www.openscenegraph.org/
ogre:https://www.ogre3d.org/
marble:https://marble.kde.org/
Open Geographic Processing Tools:
GeoTools:https://www.geotools.org/ Geographic processing toolbox
GeoNetwork:https://geonetwork-opensource.org/ Network Map Viewing and Catalog Tools
Orfeo ToolBox:https://www.orfeo-toolbox.org/ It can process terabyte high resolution optical, multispectral and radar images.
Open association or organization
https://www.osgeo.org/ Open Source Geospatial Foundation
https://www.osgeo.cn/ China Open Geospatial Laboratory
https://www.opengeospatial.org/ OGC Open Geospatial Information Alliance
OSGeo project
Web Map Service:
deegree http://www.deegree.org/
geomajas http://www.geomajas.org/
GeoServer http://geoserver.org/display/GEOS/Welcome
Mapbender http://www.mapbender.org/
MapBuilder http://communitymapbuilder.osgeo.org/
MapFish http://www.mapfish.org/
MapGuide Open Source http://mapguide.osgeo.org/
MapServer http://www.mapserver.org/
OpenLayers http://openlayers.org/
Geographic information desktop software:
GRASS GIS http://grass.osgeo.org/
Quantum GIS http://www.qgis.org
gvSIG http://www.gvsig.org
Geographic information function library:
FDO http://fdo.osgeo.org/
GDAL/OGR http://www.gdal.org/
GEOS http://trac.osgeo.org/geos/
GeoTools http://www.geotools.org/
MetaCRS http://trac.osgeo.org/metacrs/
OSSIM http://www.ossim.org/
PostGIS http://www.postgis.org/