v.1.0.53

Test Server for Serving Data by Tiles and Bbox

The purpose of the project is to create a test server that shows how data can be loaded by tiles and bbox (lower left and upper right points). By making a GET request to the /v1/bbox endpoint of the server, you can retrieve the data within a specific bounding box.

There are two example data sources provided: a database and a json file.

If you install the project without setting any environment variables, the json file will be used as the data source. The same data provider will be used if json is specified in both the DATA_PROVIDER environment variable and in the autotests.

It is intentional that the test server does not utilize data caching. Its main purpose is to demonstrate how to handle data by tiles and bbox, such as searching through the postgis table and filtering by bbox.

You can use the entire project as a foundation, or just utilize the database structure and data provider.

Installation

git clone git@github.com:mappable-world/mappable-test-server.git
cd mappable-test-server
nvm use
npm ci
npm start

or using Docker:

git clone git@github.com:mappable-world/mappable-test-server.git
cd mappable-test-server
docker compose up

To set up the test server, you can obtain data from the website http://geojson.xyz/. Choose any file that contains points on the map. After that, you can load the data into the database on your test service.

For example:

docker compose exec web POINTS_JSON=https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_10m_admin_1_label_points.geojson node ./dist/tools/geojson-to-table-points-sql.js

The test server demonstrates how to load data by tiles and bbox (lower left and upper right points). You can make a POST request to the server's /v1/bbox endpoint to retrieve data within a specific bounding box:

Usage

By bbox:

curl -X 'https://mappable-test-server-d7778c5d7460.herokuapp.com/v1/bbox?lng1=23&lat1=54&lng2=24&lat2=44'

By tile:

curl -X 'https://mappable-test-server-d7778c5d7460.herokuapp.com/v1/tile?x=1&y=1&z=1'

This will return the data within the specified bounding box. Please refer to the API & Demo for more details on the available endpoints and their usage.

Demo

You can see the demo of the test server here: https://mappable-test-server-d7778c5d7460.herokuapp.com/v1/api_docs/

Contribution

See CONTRIBUTING.md for more details on how to contribute to the project.