Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.

README.md

Share geospatial data via modern Web APIs

License Build Status GitHub tag (latest SemVer)

ldproxy allows you to quickly set up Web APIs that make geospatial data available to others or to your own applications via HTTP.

Work on ldproxy started in 2015 to explore how existing spatial data infrastructures could be improved. The design of ldproxy has been inspired by the parallel development of the W3C/OGC Spatial Data on the Web Best Practices as well as the W3C Data on the Web Best Practices. Since then, ldproxy has provided input to the Open Geospatial Consortium (OGC) and the emerging OGC API Standards. It is one of the most complete implementations of these specifications.

Key characteristics:

  • Easy to use: The APIs support both JSON and HTML. Users of an API can use their favorite programming environment to access the data or simply use their browser.
  • Browseable: All content is linked from the landing page of each API. A user can navigate through the API in any web browser and quickly get an impression of the data and the API capabilities. Search engines can index the data, too.
  • Linkable: Each data item in the APIs has a stable URI and can be used in external links.
  • Based on standards: ldproxy is a comprehensive implementation of the emerging OGC API Standards and an increasing number of clients or libraries can use the APIs directly. This also applies to the supported formats returned by the APIs, e.g. GeoJSON, Mapbox Vector Tiles, Mapbox Styles or TileJSON. In addition, the APIs themselves are documented in a developer-friendly way via OpenAPI 3.0.
  • Certified: ldproxy was certified as the first OGC Reference Implementation for OGC API - Features - Part 1: Core 1.0.
  • Open Source: The source code is available under the Mozilla Public License 2.0 on GitHub.
  • Multiple Data Sources: Currently two types of data sources are supported: PostgreSQL databases with the PostGIS extension and OGC Web Feature Services (WFS).
  • Extensible: ldproxy is modular, written in Java 11 and designed to be extended to support your needs.

To get an idea how the APIs look like, have a look at the demos.

More information on the supported specifications and technologies is available in English and German.

Getting started

The recommended environment is a current Linux or macOS operating system with docker. ldproxy is available on Docker Hub. If you are new to Docker, have a look at the Docker Documentation.

To install and start the lastest stable ldproxy version, just run the following command:

docker run -d -p 7080:7080 -v ldproxy_data:/ldproxy/data iide/ldproxy:latest

For more information, have a look at the deployment guide (English, German).

When your container is up and running, have a look at the configuration guide (English, German).

To run ldproxy without docker, a 64-bit Java environment with Java 11 is recommended.

Development

The only requirement is an installation of JDK 11. To set up a local development environment, follow these steps:

git clone https://github.com/interactive-instruments/ldproxy.git
cd ldproxy
git submodule update --init
./gradlew -PdownloadNode=true assemble
./gradlew run

That's it, a local server is running at port 7080.

You can also create a distribution by running ./gradlew distTar or ./gradlew distZip. The resulting archive can then be extracted on any machine with Java 11 and ldproxy can be started with one of the scripts under ldproxy/bin/.

Additional information will be documented in a developer and design documentation (work-in-progress).

You can’t perform that action at this time.