Introduction to the main open source WebGIS
WebGIS consists of four parts, from the name, it can also be seen at least including Web and GIS, which involves complex technology. From the perspective of WebGIS, open source tools can be divided into component products and full stack products.
Components of WebGIS
Four Components of Web GIS: Web GIS application Development and GIS Servers
- Web services and application services
- GIS service
- Data service
Client: The client is the place where the user interacts with the spatial objects and analysis functions in the Web GIS. It is also where Internet GIS programs present output to users.
Web server and application server: The web server responds to requests from a web browser via HTTP. When the web server passes the request to another program, it requests the service from the application server. The application server acts as a converter or connector between the web server and the GIS server.
GIS Server: The GIS Server is a major component that performs spatial queries, performs spatial analysis, generates and provides maps to clients based on user requests.
Data Server: A data server provides both spatial and non-spatial data in a relational or non-relational database structure.
In this website, we pay special attention to GIS servers and client applications. There are many GIS servers on the Internet, such as GeoServer, MapServer, Mapnik, MapGuide, QGIS servers, etc. All of these servers are open source servers, which are available for free. ArcGIS also provides a server, but it is not free, but has many additional features. All open source servers are available for free download from their respective websites.
The following products are typically used as components and combined with other tools in various combinations to create custom applications.
MapServer is an open source platform for publishing spatial data and creating interactive map applications to the Web.It has existed since the mid-1990s and is considered mature and stable, and continues to grow actively.The main focus is on generating maps from multiple layers, including base images and spatial datasets.It also provides smart labels, including advanced typography and layout, including collision detection.It can read and provide spatial data in a variety of formats, including Shapefiles, WMS, GDAL, PostGIS and GeoTIFF.It is commonly used to generate map tiles and their MapCache extensions. It has libraries that support application development in a variety of languages, including Python, Perl, Ruby, Java, and PHP.
PostGIS is an extension of the PostgreSQL database that supports spatial queries.PostgreSQL is both a relational database and an object database. It is widely regarded as the most advanced open source database, which is the same as Oracle and MS-SQL.PostGIS supports a variety of spatial queries, including proximity, radius, bounding box, collision/overlap detection, and more. It is a very useful tool that is often used in Web GIS projects.
GDAL (Geospatial Data Abstraction Library)
GDAL is a translation library for geospatial data formats. It can import and export a wide variety of files and encoding types.It can be used to convert spatial data between different projection systems. The raster data format is processed by GDAL, and the vector data format is processed by OGR which is now included in GDAL.It can also be used to create mosaics from multiple image file sources. GDAL is a valuable tool for getting data from different sources and transforming it into collaborative work.
TileMill is a desktop application that generates a map tile image and then hosts it as a static file for use as a base layer.TileMill can be used to create visually stunning base layers.It is very aesthetically pleasing, and includes many well-thought-out presets that enable people without a design background to create very attractive and professional map layers.The development of TileMill is led by a company called MapBox. They offer several attractive paid services, including tile hosting and a selection and carefully tuned base layer.
The following products are distributed as “stacks” or “bundles”. They are pre-configured combinations of modular products. Some can be used as-is (after adding configuration and base layers) and all of them can be further extended to create custom applications.
GeoServer is primarily based on the Java language. It provides basic functionality for creating and editing geospatial data and making maps available in a service-oriented architecture. It uses the OpenLayers module and provides implementation of the Web Map Service (WMS) standard. It also makes use of the GeoTools framework, which covers a slightly smaller subset of MapServer’s functionality. Like GeoServer itself, which is written in Java. It will appeal largely to developers already working with Java- based tools and platforms. http://geoserver.org/display/GEOS/Welcome
GeoDjango is a set of spatial extensions for the Django application framework. Django is written primarily in Python and is one of the most popular general-purpose frameworks for building web apps with Python. Unlike GeoMoose or MapGuide, it does not provide an application out of the box, and is rather a set of very nicely crafted building blocks for building custom applications. Unlike some of the other stack products described above, it makes less assumptions about which other geospatial tools will be used in the stack, and provides integration points through a series of clearly-designed, well-documented APIs. It will likely appeal to developers who want more choice and control in the building of their applications as well as those who prefer the Python language.