Share geospatial data via modern Web APIs
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.
- 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.
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
To run ldproxy without docker, a 64-bit Java environment with Java 11 is recommended.
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
Additional information will be documented in a developer and design documentation (work-in-progress).