All Projects → heremaps → xyz-hub

heremaps / xyz-hub

Licence: Apache-2.0 License
XYZ Hub is a RESTful web service for the access and management of geospatial data.

Programming Languages

java
68154 projects - #9 most used programming language
PLpgSQL
1095 projects

Projects that are alternatives of or similar to xyz-hub

L7
🌎 Large-scale WebGL-powered Geospatial Data Visualization analysis framework which relies on Mapbox GL or AMap to render basemaps.
Stars: ✭ 2,517 (+5753.49%)
Mutual labels:  geojson, geospatial
GeoJSON.jl
Utilities for working with GeoJSON data in Julia
Stars: ✭ 46 (+6.98%)
Mutual labels:  geojson, geospatial
Php Crud Api
Single file PHP script that adds a REST API to a SQL database
Stars: ✭ 2,904 (+6653.49%)
Mutual labels:  geojson, geospatial
Geoswift
The Swift Geometry Engine.
Stars: ✭ 1,267 (+2846.51%)
Mutual labels:  geojson, geospatial
skynet-scrub-server
Backing store for developmentseed/skynet-scrub
Stars: ✭ 13 (-69.77%)
Mutual labels:  geojson, geospatial
Geojson2h3
Conversion utilities between H3 indexes and GeoJSON
Stars: ✭ 93 (+116.28%)
Mutual labels:  geojson, geospatial
de9im
DE-9IM spatial predicate library implemented in Javascript.
Stars: ✭ 22 (-48.84%)
Mutual labels:  geojson, geospatial
Magellan
Geo Spatial Data Analytics on Spark
Stars: ✭ 507 (+1079.07%)
Mutual labels:  geojson, geospatial
turf-go
A Go language port of Turf.js
Stars: ✭ 41 (-4.65%)
Mutual labels:  geojson, geospatial
pyturf
A modular geospatial engine written in python
Stars: ✭ 15 (-65.12%)
Mutual labels:  geojson, geospatial
Geotools
Official GeoTools repository
Stars: ✭ 1,109 (+2479.07%)
Mutual labels:  geojson, geospatial
xyz-spaces-python
Manage your XYZ Hub or HERE Data Hub spaces from Python.
Stars: ✭ 29 (-32.56%)
Mutual labels:  geojson, geospatial
Lawn
⛔ ARCHIVED ⛔ turf.js R client
Stars: ✭ 57 (+32.56%)
Mutual labels:  geojson, geospatial
Kepler
The open source full-stack geosocial network platform
Stars: ✭ 125 (+190.7%)
Mutual labels:  geojson, geospatial
Wellknown
WKT <-> GeoJSON
Stars: ✭ 15 (-65.12%)
Mutual labels:  geojson, geospatial
krawler
A minimalist (geospatial) ETL
Stars: ✭ 51 (+18.6%)
Mutual labels:  geojson, geospatial
Orb
Types and utilities for working with 2d geometry in Golang
Stars: ✭ 378 (+779.07%)
Mutual labels:  geojson, geospatial
Go Geom
Package geom implements efficient geometry types for geospatial applications.
Stars: ✭ 456 (+960.47%)
Mutual labels:  geojson, geospatial
geojson
Library for serializing the GeoJSON vector GIS file format
Stars: ✭ 171 (+297.67%)
Mutual labels:  geojson, geospatial
geojson
GeoJSON classes for R
Stars: ✭ 32 (-25.58%)
Mutual labels:  geojson, geospatial

XYZ Hub

License Run XYZ Hub tests

XYZ Hub is a RESTful web service for the access and management of geospatial data.

Overview

Some of the features of XYZ Hub are:

  • Organize geo datasets in spaces
  • Store and manipulate individual geo features (points, linestrings, polygons)
  • Retrieve geo features as vector tiles, with or without clipped geometries
  • Search for geo features spatially using a bounding box, radius, or any custom geometry
  • Explore geo features by filtering property values
  • Retrieve statistics for your spaces
  • Analytical representation of geo data as hexbins with statistical information
  • Connect with different data sources
  • Build a real-time geodata pipeline with processors
  • Attach listeners to react on events

You can find more information in the XYZ Documentation and in the OpenAPI specification.

XYZ Hub uses GeoJSON as the main geospatial data exchange format. Tiled data can also be provided as MVT.

Prerequisites

  • Java 8.x
  • Maven 3.6+
  • Postgres 10+ with PostGIS 2.5+
  • Redis 5+ (optional)
  • Docker 18+ (optional)
  • Docker Compose 1.24+ (optional)

Getting started

Clone and install the project using:

git clone https://github.com/heremaps/xyz-hub.git
cd xyz-hub
mvn clean install

With docker

The service and all dependencies could be started locally using Docker compose.

docker-compose up -d

Alternatively, you can start freshly from the sources by using this command after cloning the project:

mvn clean install -Pdocker

Hint: Postgres with PostGIS will be automatically started if you use 'docker-compose up -d' to start the service.

Without docker

The service could also be started directly as a fat jar. In this case Postgres and the other optional dependencies need to be started separately.

java [OPTIONS] -jar xyz-hub-service/target/xyz-hub-service.jar

Example:

java -DHTTP_PORT=8080 -jar xyz-hub-service/target/xyz-hub-service.jar

Configuration options

The service start parameters could be specified by editing the default config file, using environment variables or system properties. See the default list of configuration parameters and their default values.

Usage

Start using the service by creating a space:

curl -H "content-type:application/json" -d '{"title": "my first space", "description": "my first geodata repo"}' http://localhost:8080/hub/spaces

The service will respond with the space definition including the space ID:

{
    "id": "pvhQepar",
    "title": "my first space",
    "description": "my first geodata repo",
    "storage": {
        "id": "psql",
        "params": null
    },
    "owner": "ANONYMOUS",
    "createdAt": 1576601166681,
    "updatedAt": 1576601166681,
    "contentUpdatedAt": 1576601166681,
    "autoCacheProfile": {
        "browserTTL": 0,
        "cdnTTL": 0,
        "serviceTTL": 0
    }
}

You can now add features to your brand new space:

curl -H "content-type:application/geo+json" -d '{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-2.960847,53.430828]},"properties":{"name":"Anfield","@ns:com:here:xyz":{"tags":["football","stadium"]},"amenity":"Football Stadium","capacity":54074,"description":"Home of Liverpool Football Club"}}]}' http://localhost:8080/hub/spaces/pvhQepar/features

The service will respond with the inserted geo features:

{
    "type": "FeatureCollection",
    "etag": "b67016e5dcabbd5f76b0719d75c84424",
    "features": [
        {
            "type": "Feature",
            "id": "nf36KMsQAUYoM5kM",
            "geometry": {
                "type": "Point",
                "coordinates": [ -2.960847, 53.430828 ]
            },
            "properties": {
                "@ns:com:here:xyz": {
                    "space": "pvhQepar",
                    "createdAt": 1576602412218,
                    "updatedAt": 1576602412218,
                    "tags": [ "football", "stadium" ]
                },
                "amenity": "Football Stadium",
                "name": "Anfield",
                "description": "Home of Liverpool Football Club",
                "capacity": 54074
            }
        }
    ],
    "inserted": [
        "nf36KMsQAUYoM5kM"
    ]
}

OpenAPI specification

The OpenAPI specification files are accessible under the following URIs:

  • Stable: http://<host>:<port>/hub/static/openapi/stable.yaml
  • Experimental: http://<host>:<port>/hub/static/openapi/experimental.yaml

Acknowledgements

XYZ Hub uses:

and others.

Contributing

Your contributions are always welcome! Please have a look at the contribution guidelines first.

License

Copyright (C) 2017-2022 HERE Europe B.V.

This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].