Code Monkey home page Code Monkey logo

georest-api's Introduction

GeoREST-API

tiles_preview

A Dockerized REST API for geospatial services based on OGCAPI Features and OGCAPI Tiles. A work-in-progress.

Motivation

  • WMS is dead(ish). Long Live OGCs.

    XML is one of legacy of the early internet age, and even more so in geospatial realm where GML is still the golden standard for information exchange and shapefiles rules the desktop. OGCAPI is a set of standard based on what's good in today's internet era. The Standards are intended to gradually replace the old standards for geospatial data information exchange on the internet (i.e., WMS, WFS, CSW, etc).

  • Fast is better than slow

    A lot of geospatial web server does the job very well, but it grows in complexity when bigger data or faster processing is needed. Not to mention the problems when dealing with monolythic architecture for production-ready services (e.g. microservices deployment). It is easier to have some components quickly ready for prototyping, and scale accordingly. Scroll down to 'How to Use' and see for yourself. P.S. Geoserver have plan for completely supporting OGC-APIs in near future, but still..

  • Simple is better than complicated.

    Each component in this stack can be easily deployed as a microservices instead of a single monorepo. But again, this repo works well for quick backend serving APIs in prototyping a WebGIS frontend, since only minimal configurations are needed. A short docker compose command is all you need to get the services running.

How to use

  1. Clone this repo
  2. Install Docker and Docker Compose
  3. Create a '.env' file and fill in corresponding environment variables
  4. docker compose up -d

And that's it. Fire up your browser and consume this endpoints:

  • localhost/tiles for OGC Tiles interface
  • localhost/features for OGC Features interface
  • localhost/api for PostgREST OpenAPI interface

Useful for quick prototyping and development stage. For production ready deployment, see Hardening Postgrest. Other docker compose files are also available for example of different deployment scenario.

A frontend WebGIS consuming this architecture (based on MaplibreJS) is a WIP in Next-WebGIS Repository.

Stacks

Dedicated PostGIS is optional and therefore is not needed. I recommend Kartoza's PostGIS for production-ready PostGIS instance.

License

This work is licensed under MIT LICENSE.

georest-api's People

Contributors

danylaksono avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

steve-chavez

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.