Merge branch 'master' into bicycle-foot-horse-mtb_scale
|
@ -13,4 +13,4 @@ Your pull request must:
|
|||
|
||||
* Be possible to merge automatically.
|
||||
|
||||
When you rea making PR that adds new spatial features to OpenMapTiles schema, please make also PR for at least one of our GL styles to show it on the map. Visual check is crucial.
|
||||
When you are making a PR that adds new spatial features to OpenMapTiles schema, please make also PR for at least one of our GL styles to show it on the map. Visual check is crucial.
|
||||
|
|
|
@ -15,4 +15,8 @@ data/*
|
|||
wikidata/*
|
||||
|
||||
# generated source files
|
||||
build/*
|
||||
build/*
|
||||
|
||||
# any IDE files
|
||||
.idea/
|
||||
.vscode/
|
||||
|
|
|
@ -6,7 +6,7 @@ language: bash
|
|||
|
||||
services:
|
||||
- docker
|
||||
|
||||
|
||||
before_install:
|
||||
- sudo rm -f /usr/local/bin/docker-compose
|
||||
- curl -L https://github.com/docker/compose/releases/download/1.7.1/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||
|
@ -15,9 +15,8 @@ before_install:
|
|||
- sudo service docker restart
|
||||
- docker-compose -v
|
||||
- docker -v
|
||||
|
||||
|
||||
script:
|
||||
- sudo service docker restart
|
||||
- docker-compose config
|
||||
- sudo ./quickstart.sh
|
||||
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
# Introduction
|
||||
|
||||
Thank you for considering contributing to OpenMapTiles. It's people like you that make OpenMapTiles such a great project. Talk to us at the OSM Slack **#openmaptiles** channel ([join](https://osmus-slack.herokuapp.com/)).
|
||||
|
||||
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
|
||||
|
||||
OpenMapTiles is an open source project and we love to receive contributions from our community — you! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into OpenMapTiles itself.
|
||||
|
||||
# Ground Rules
|
||||
|
||||
* Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback.
|
||||
* Keep feature versions as small as possible, preferably one new feature per version.
|
||||
* Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. See the [Python Community Code of Conduct](https://www.python.org/psf/codeofconduct/).
|
||||
|
||||
# Getting started
|
||||
|
||||
1. Create your own fork of the code
|
||||
1. Do the changes in your fork
|
||||
1. Create a pull request
|
||||
|
||||
# Code review process
|
||||
|
||||
We all make mistakes and bad coding decisions. So apart from the obvious fixes, all changes must be reviewed by another 2 members of the project. This also helps with the [bus factor](https://en.wikipedia.org/wiki/Bus_factor) -- there should always be other people in the team who know why a change was made.
|
||||
|
||||
For any non-trivial changes, all pull requests must be approved by at least three members of the OpenMapTiles team. Afterwards you can merge the PR if you have rights, or another person must do it for you.
|
||||
|
||||
Your pull request must:
|
||||
|
||||
* Address a single issue or add a single item of functionality.
|
||||
* Contain a clean history of small, incremental, logically separate commits,
|
||||
with no merge commits.
|
||||
* Use clear commit messages.
|
||||
* Be possible to merge automatically.
|
||||
|
||||
When you modify rules of importing data in `mapping.yaml` or `*.sql`, please update also:
|
||||
|
||||
1. field description in `[layer].yaml`
|
||||
2. comments starting with `#etldoc`
|
||||
3. if needed, generate new `mapping_diagram.png` or `etl_diagram.png` using commands below:
|
||||
```
|
||||
make mapping-graph-[layer]
|
||||
make etl-graph-[layer]
|
||||
```
|
||||
4. update layer description on https://openmaptiles.org/schema/ (https://github.com/openmaptiles/www.openmaptiles.org/tree/master/layers)
|
||||
5. check if OMT styles are affected by the PR and if there is a need for style updates
|
||||
|
||||
When you are making PR that adds new spatial features to OpenMapTiles schema, please make also PR for at least one of our GL styles to show it on the map. Visual check is crucial.
|
86
Makefile
|
@ -20,7 +20,9 @@ help:
|
|||
@echo " make psql-vacuum-analyze # PostgreSQL: VACUUM ANALYZE"
|
||||
@echo " make psql-analyze # PostgreSQL: ANALYZE"
|
||||
@echo " make generate-qareports # generate reports [./build/qareports]"
|
||||
@echo " make generate-devdoc # generate devdoc [./build/devdoc]"
|
||||
@echo " make generate-devdoc # generate devdoc including graphs for all layers [./build/devdoc]"
|
||||
@echo " make etl-graph # hint for generating a single etl graph"
|
||||
@echo " make mapping-graph # hint for generating a single mapping graph"
|
||||
@echo " make import-sql-dev # start import-sql /bin/bash terminal"
|
||||
@echo " make import-osm-dev # start import-osm /bin/bash terminal (imposm3)"
|
||||
@echo " make clean-docker # remove docker containers, PG data volume"
|
||||
|
@ -31,18 +33,22 @@ help:
|
|||
@echo " make pgclimb-list-views # list PostgreSQL public schema views"
|
||||
@echo " make pgclimb-list-tables # list PostgreSQL public schema tables"
|
||||
@echo " cat .env # list PG database and MIN_ZOOM and MAX_ZOOM information"
|
||||
@echo " cat ./quickstart.log # backup of the last ./quickstart.sh"
|
||||
@echo " cat quickstart.log # backup of the last ./quickstart.sh"
|
||||
@echo " make help # help about available commands"
|
||||
@echo "=============================================================================="
|
||||
|
||||
build/openmaptiles.tm2source/data.yml:
|
||||
mkdir -p build/openmaptiles.tm2source && generate-tm2source openmaptiles.yaml --host="postgres" --port=5432 --database="openmaptiles" --user="openmaptiles" --password="openmaptiles" > build/openmaptiles.tm2source/data.yml
|
||||
build:
|
||||
mkdir -p build
|
||||
|
||||
build/mapping.yaml:
|
||||
mkdir -p build && generate-imposm3 openmaptiles.yaml > build/mapping.yaml
|
||||
build/openmaptiles.tm2source/data.yml: build
|
||||
mkdir -p build/openmaptiles.tm2source
|
||||
docker-compose run --rm openmaptiles-tools generate-tm2source openmaptiles.yaml --host="postgres" --port=5432 --database="openmaptiles" --user="openmaptiles" --password="openmaptiles" > build/openmaptiles.tm2source/data.yml
|
||||
|
||||
build/tileset.sql:
|
||||
mkdir -p build && generate-sql openmaptiles.yaml > build/tileset.sql
|
||||
build/mapping.yaml: build
|
||||
docker-compose run --rm openmaptiles-tools generate-imposm3 openmaptiles.yaml > build/mapping.yaml
|
||||
|
||||
build/tileset.sql: build
|
||||
docker-compose run --rm openmaptiles-tools generate-sql openmaptiles.yaml > build/tileset.sql
|
||||
|
||||
clean:
|
||||
rm -f build/openmaptiles.tm2source/data.yml && rm -f build/mapping.yaml && rm -f build/tileset.sql
|
||||
|
@ -70,30 +76,18 @@ download-geofabrik:
|
|||
psql: db-start
|
||||
docker-compose run --rm import-osm /usr/src/app/psql.sh
|
||||
|
||||
cfg-remake:
|
||||
docker-compose run --rm openmaptiles-tools make clean
|
||||
docker-compose run --rm openmaptiles-tools make
|
||||
|
||||
import-osm: db-start
|
||||
docker-compose run --rm openmaptiles-tools make clean
|
||||
docker-compose run --rm openmaptiles-tools make
|
||||
import-osm: db-start all
|
||||
docker-compose run --rm import-osm
|
||||
|
||||
import-sql: db-start
|
||||
docker-compose run --rm openmaptiles-tools make clean
|
||||
docker-compose run --rm openmaptiles-tools make
|
||||
import-sql: db-start all
|
||||
docker-compose run --rm import-sql
|
||||
|
||||
import-osmsql: db-start
|
||||
docker-compose run --rm openmaptiles-tools make clean
|
||||
docker-compose run --rm openmaptiles-tools make
|
||||
import-osmsql: db-start all
|
||||
docker-compose run --rm import-osm
|
||||
docker-compose run --rm import-sql
|
||||
|
||||
generate-tiles: db-start
|
||||
generate-tiles: db-start all
|
||||
rm -rf data/tiles.mbtiles
|
||||
docker-compose run --rm openmaptiles-tools make clean
|
||||
docker-compose run --rm openmaptiles-tools make
|
||||
if [ -f ./data/docker-compose-config.yml ]; then \
|
||||
docker-compose -f docker-compose.yml -f ./data/docker-compose-config.yml run --rm generate-vectortiles; \
|
||||
else \
|
||||
|
@ -147,23 +141,35 @@ start-postserve:
|
|||
generate-qareports:
|
||||
./qa/run.sh
|
||||
|
||||
# work in progress - please don't remove
|
||||
generate-devdoc:
|
||||
build/devdoc:
|
||||
mkdir -p ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/aeroway/aeroway.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/boundary/boundary.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/building/building.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/housenumber/housenumber.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/landcover/landcover.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/landuse/landuse.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/park/park.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/place/place.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/poi/poi.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/transportation/transportation.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/transportation_name/transportation_name.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/water/water.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/water_name/water_name.yaml ./build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/waterway/waterway.yaml ./build/devdoc
|
||||
|
||||
layers = $(notdir $(wildcard layers/*)) # all layers
|
||||
|
||||
etl-graph:
|
||||
@echo 'Use'
|
||||
@echo ' make etl-graph-[layer] to generate etl graph for [layer]'
|
||||
@echo ' example: make etl-graph-poi'
|
||||
@echo 'Valid layers: $(layers)'
|
||||
|
||||
# generate etl graph for a certain layer, e.g. etl-graph-building, etl-graph-place
|
||||
etl-graph-%: layers/% build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-etlgraph layers/$*/$*.yaml ./build/devdoc
|
||||
|
||||
mappingLayers = $(notdir $(patsubst %/mapping.yaml,%, $(wildcard layers/*/mapping.yaml))) # layers with mapping.yaml
|
||||
|
||||
# generate mapping graph for a certain layer, e.g. mapping-graph-building, mapping-graph-place
|
||||
mapping-graph:
|
||||
@echo 'Use'
|
||||
@echo ' make mapping-graph-[layer] to generate mapping graph for [layer]'
|
||||
@echo ' example: make mapping-graph-poi'
|
||||
@echo 'Valid layers: $(mappingLayers)'
|
||||
|
||||
mapping-graph-%: ./layers/%/mapping.yaml build/devdoc
|
||||
docker run --rm -v $$(pwd):/tileset openmaptiles/openmaptiles-tools generate-mapping-graph layers/$*/$*.yaml ./build/devdoc/mapping-diagram-$*
|
||||
|
||||
# generate all etl and mapping graphs
|
||||
generate-devdoc: $(addprefix etl-graph-,$(layers)) $(addprefix mapping-graph-,$(mappingLayers))
|
||||
|
||||
import-sql-dev:
|
||||
docker-compose run --rm import-sql /bin/bash
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
## Quickstart - for small extracts
|
||||
|
||||
### Req:
|
||||
|
@ -12,7 +10,9 @@
|
|||
* Please give a feedback, share your experience, write a tutorial
|
||||
* bash
|
||||
* git
|
||||
* make
|
||||
* make
|
||||
* bc
|
||||
* md5sum
|
||||
* docker >=1.12.3
|
||||
* https://www.docker.com/products/overview
|
||||
* docker-compose >=1.7.1
|
||||
|
@ -45,15 +45,15 @@ cd openmaptiles
|
|||
If you have problems with the quickstart
|
||||
* check the ./quickstart.log!
|
||||
* doublecheck the system requirements!
|
||||
* check the current issues: https://github.com/openmaptiles/openmaptiles/issues
|
||||
* create new issues:
|
||||
* check the current issues: https://github.com/openmaptiles/openmaptiles/issues
|
||||
* create new issues:
|
||||
* create a new gist: https://gist.github.com/ from your ./quickstart.log
|
||||
* doublecheck: don't reveal any sensitive information about your system
|
||||
* doublecheck: don't reveal any sensitive information about your system
|
||||
* create a new issue: https://github.com/openmaptiles/openmaptiles/issues
|
||||
* describe the problems
|
||||
* add any pertinent information about your environment
|
||||
* describe the problems
|
||||
* add any pertinent information about your environment
|
||||
* link your (quickstart.log) gist!
|
||||
|
||||
|
||||
### Check other extracts
|
||||
|
||||
IF the previous step is working,
|
||||
|
@ -377,25 +377,25 @@ and the generated maps are going to be available in browser on [localhost:8090/t
|
|||
|
||||
### Check tileserver
|
||||
|
||||
start:
|
||||
* ` make start-tileserver`
|
||||
start:
|
||||
* ` make start-tileserver`
|
||||
and the generated maps are going to be available in webbrowser on [localhost:8080](http://localhost:8080/).
|
||||
|
||||
This is only a quick preview, because your mbtiles only generated to zoom level 7 !
|
||||
This is only a quick preview, because your mbtiles only generated to zoom level 7 !
|
||||
|
||||
|
||||
### Change MIN_ZOOM and MAX_ZOOM
|
||||
|
||||
modify the settings in the `.env` file, the defaults :
|
||||
* QUICKSTART_MIN_ZOOM=0
|
||||
* QUICKSTART_MAX_ZOOM=7
|
||||
* QUICKSTART_MAX_ZOOM=7
|
||||
|
||||
and re-start `./quickstart.sh `
|
||||
* the new config file re-generating to here ./data/docker-compose-config.yml
|
||||
* Known problems:
|
||||
* If you use same area - then the ./data/docker-compose-config.yml not re-generating, so you have to modify by hand!
|
||||
* If you use same area - then the ./data/docker-compose-config.yml not re-generating, so you have to modify by hand!
|
||||
|
||||
Hints:
|
||||
Hints:
|
||||
* Small increments! Never starts with the MAX_ZOOM = 14
|
||||
* The suggested MAX_ZOOM = 14 - use only with small extracts
|
||||
|
||||
|
@ -408,37 +408,36 @@ the current output:
|
|||
|
||||
```
|
||||
==============================================================================
|
||||
OpenMapTiles https://github.com/openmaptiles/openmaptiles
|
||||
Hints for testing areas
|
||||
make download-geofabrik-list # list actual geofabrik OSM extracts for download -> <<your-area>>
|
||||
make list # list actual geofabrik OSM extracts for download -> <<your-area>>
|
||||
./quickstart.sh <<your-area>> # example: ./quickstart.sh madagascar
|
||||
|
||||
OpenMapTiles https://github.com/openmaptiles/openmaptiles
|
||||
Hints for testing areas
|
||||
make download-geofabrik-list # list actual geofabrik OSM extracts for download -> <<your-area>>
|
||||
make list # list actual geofabrik OSM extracts for download -> <<your-area>>
|
||||
./quickstart.sh <<your-area>> # example: ./quickstart.sh madagascar
|
||||
|
||||
Hints for designers:
|
||||
make start-postserve # start Postserver + Maputnik Editor [ see localhost:8088 ]
|
||||
make start-tileserver # start klokantech/tileserver-gl [ see localhost:8080 ]
|
||||
|
||||
make start-postserve # start Postserver + Maputnik Editor [ see localhost:8088 ]
|
||||
make start-tileserver # start klokantech/tileserver-gl [ see localhost:8080 ]
|
||||
|
||||
Hints for developers:
|
||||
make # build source code
|
||||
make # build source code
|
||||
make download-geofabrik area=albania # download OSM data from geofabrik, and create config file
|
||||
make psql # start PostgreSQL console
|
||||
make psql-list-tables # list all PostgreSQL tables
|
||||
make psql # start PostgreSQL console
|
||||
make psql-list-tables # list all PostgreSQL tables
|
||||
make psql-vacuum-analyze # PostgreSQL: VACUUM ANALYZE
|
||||
make psql-analyze # PostgreSQL: ANALYZE
|
||||
make generate-qareports # generate reports [./build/qareports]
|
||||
make generate-devdoc # generate devdoc [./build/devdoc]
|
||||
make import-sql-dev # start import-sql /bin/bash terminal
|
||||
make import-sql-dev # start import-sql /bin/bash terminal
|
||||
make import-osm-dev # start import-osm /bin/bash terminal (imposm3)
|
||||
make clean-docker # remove docker containers, PG data volume
|
||||
make forced-clean-sql # drop all PostgreSQL tables for clean environment
|
||||
make clean-docker # remove docker containers, PG data volume
|
||||
make forced-clean-sql # drop all PostgreSQL tables for clean environment
|
||||
make docker-unnecessary-clean # clean unnecessary docker image(s) and container(s)
|
||||
make refresh-docker-images # refresh openmaptiles docker images from Docker HUB
|
||||
make remove-docker-images # remove openmaptiles docker images
|
||||
make pgclimb-list-views # list PostgreSQL public schema views
|
||||
make pgclimb-list-tables # list PostgreSQL public schema tables
|
||||
cat .env # list PG database and MIN_ZOOM and MAX_ZOOM information
|
||||
cat ./quickstart.log # backup of the last ./quickstart.sh
|
||||
cat ./quickstart.log # backup of the last ./quickstart.sh
|
||||
make help # help about available commands
|
||||
==============================================================================
|
||||
```
|
||||
|
||||
|
|
30
README.md
|
@ -1,12 +1,17 @@
|
|||
## OpenMapTiles [](https://travis-ci.org/openmaptiles/openmaptiles)
|
||||
|
||||
OpenMapTiles is an extensible and open vector tile schema for a OpenStreetMap basemap. It is used to generate vector tiles for [openmaptiles.org](http://openmaptiles.org/) and [openmaptiles.com](http://openmaptiles.com/).
|
||||
OpenMapTiles is an extensible and open tile schema based on the OpenStreetMap. It is used to generate vector tiles for online zoomable maps. The project is about creating a beautiful basemaps with general layers that contain topographic information. More information [openmaptiles.org](https://openmaptiles.org/) and [openmaptiles.com](https://openmaptiles.com/).
|
||||
|
||||
We encourage you to collaborate, reuse and adapt existing layers and add your own layers or use our approach for your own vector tile project. The repository is built on top of the [openmaptiles/tools](https://github.com/openmaptiles/openmaptiles-tools) to simplify vector tile creation.
|
||||
We encourage you to collaborate, reuse and adapt existing layers and add your own layers or use our approach for your own vector tile project. Feel free to fork the repo and experiment. The repository is built on top of the [openmaptiles/openmaptiles-tools](https://github.com/openmaptiles/openmaptiles-tools) to simplify vector tile creation.
|
||||
|
||||
- :link: Docs http://openmaptiles.org/docs
|
||||
- :link: Schema: http://openmaptiles.org/schema
|
||||
- :link: Production package: http://openmaptiles.com/
|
||||
Please keep in mind that OpenMapTiles schema should stay displaying general topographic content. In case of creating a new layer or expanding an existing one with a specific theme, please create a fork and invite other community members to cooperate on your topic in this separate fork. OpenMapTiles schema is used in many projects all over the world and the size of the final vector tiles needs to be considered in any update.
|
||||
|
||||
- :link: Schema https://openmaptiles.org/schema
|
||||
- :link: Docs https://openmaptiles.org/docs
|
||||
- :link: Production package: https://openmaptiles.com/production-package/
|
||||
- :link: Hosting https://www.maptiler.com/cloud/
|
||||
- :link: Create own layer https://github.com/openmaptiles/openmaptiles-skiing
|
||||
- :link: Discuss at the #openmaptiles channel at [OSM Slack](https://osmus-slack.herokuapp.com/)
|
||||
|
||||
## Styles
|
||||
|
||||
|
@ -60,11 +65,10 @@ Together the layers make up the OpenMapTiles tileset.
|
|||
|
||||
## Develop
|
||||
|
||||
To work on OpenMapTiles you need Docker and Python.
|
||||
To work on OpenMapTiles you need Docker.
|
||||
|
||||
- Install [Docker](https://docs.docker.com/engine/installation/). Minimum version is 1.12.3+.
|
||||
- Install [Docker Compose](https://docs.docker.com/compose/install/). Minimum version is 1.7.1+.
|
||||
- Install [OpenMapTiles tools](https://github.com/openmaptiles/openmaptiles-tools) with `pip install openmaptiles-tools`
|
||||
|
||||
### Build
|
||||
|
||||
|
@ -75,8 +79,6 @@ git clone git@github.com:openmaptiles/openmaptiles.git
|
|||
cd openmaptiles
|
||||
# Build the imposm mapping, the tm2source project and collect all SQL scripts
|
||||
make
|
||||
# You can also run the build process inside a Docker container
|
||||
docker run -v $(pwd):/tileset openmaptiles/openmaptiles-tools make
|
||||
```
|
||||
|
||||
You can execute the following manual steps (for better understanding)
|
||||
|
@ -94,7 +96,7 @@ Now start up the database container.
|
|||
docker-compose up -d postgres
|
||||
```
|
||||
|
||||
Import external data from [OpenStreetMapData](http://openstreetmapdata.com/), [Natural Earth](http://www.naturalearthdata.com/) and [OpenStreetMap Lake Labels](https://github.com/lukasmartinelli/osm-lakelines).
|
||||
Import external data from [OpenStreetMapData](http://osmdata.openstreetmap.de/), [Natural Earth](http://www.naturalearthdata.com/) and [OpenStreetMap Lake Labels](https://github.com/lukasmartinelli/osm-lakelines).
|
||||
|
||||
```bash
|
||||
docker-compose run import-water
|
||||
|
@ -119,10 +121,10 @@ docker-compose run import-osm
|
|||
|
||||
### Work on Layers
|
||||
|
||||
Each time you modify layer SQL code run `make` and `docker-compose run import-sql`.
|
||||
Each time you modify layer SQL code run `make` and `make import-sql`.
|
||||
|
||||
```
|
||||
make clean && make && docker-compose run import-sql
|
||||
make clean && make && make import-sql
|
||||
```
|
||||
|
||||
Now you are ready to **generate the vector tiles**. Using environment variables
|
||||
|
@ -136,12 +138,12 @@ docker-compose run generate-vectortiles
|
|||
|
||||
All code in this repository is under the [BSD license](./LICENSE.md) and the cartography decisions encoded in the schema and SQL are licensed under [CC-BY](./LICENSE.md).
|
||||
|
||||
Products or services using maps derived from OpenMapTiles schema need to visibly credit "OpenMapTiles.org" or reference "OpenMapTiles" with a link to http://openmaptiles.org/. Exceptions to attribution requirement can be granted on request.
|
||||
Products or services using maps derived from OpenMapTiles schema need to visibly credit "OpenMapTiles.org" or reference "OpenMapTiles" with a link to https://openmaptiles.org/. Exceptions to attribution requirement can be granted on request.
|
||||
|
||||
For a browsable electronic map based on OpenMapTiles and OpenStreetMap data, the
|
||||
credit should appear in the corner of the map. For example:
|
||||
|
||||
[© OpenMapTiles](http://openmaptiles.org/) [© OpenStreetMap contributors](http://www.openstreetmap.org/copyright)
|
||||
[© OpenMapTiles](https://openmaptiles.org/) [© OpenStreetMap contributors](https://www.openstreetmap.org/copyright)
|
||||
|
||||
For printed and static maps a similar attribution should be made in a textual
|
||||
description near the image, in the same fashion as if you cite a photograph.
|
||||
|
|
|
@ -18,7 +18,7 @@ services:
|
|||
networks:
|
||||
- postgres_conn
|
||||
import-water:
|
||||
image: "openmaptiles/import-water:0.6"
|
||||
image: "openmaptiles/import-water:1.1"
|
||||
env_file: .env
|
||||
networks:
|
||||
- postgres_conn
|
||||
|
@ -83,7 +83,7 @@ services:
|
|||
volumes:
|
||||
- ./wikidata:/import
|
||||
openmaptiles-tools:
|
||||
image: "openmaptiles/openmaptiles-tools:0.9.1"
|
||||
image: "openmaptiles/openmaptiles-tools:0.9.2"
|
||||
env_file: .env
|
||||
networks:
|
||||
- postgres_conn
|
||||
|
|
|
@ -16,7 +16,6 @@ CREATE OR REPLACE VIEW boundary_z1 AS (
|
|||
UNION ALL
|
||||
SELECT geometry, 4 AS admin_level, false AS disputed, false AS maritime
|
||||
FROM ne_50m_admin_1_states_provinces_lines
|
||||
WHERE scalerank <= 2
|
||||
);
|
||||
|
||||
|
||||
|
@ -43,29 +42,19 @@ CREATE OR REPLACE VIEW boundary_z4 AS (
|
|||
UNION ALL
|
||||
SELECT geometry, 4 AS admin_level, false AS disputed, false AS maritime
|
||||
FROM ne_10m_admin_1_states_provinces_lines
|
||||
WHERE scalerank <= 3 AND min_zoom <= 7
|
||||
WHERE min_zoom <= 5
|
||||
UNION ALL
|
||||
SELECT geometry, admin_level, disputed, maritime
|
||||
FROM osm_border_linestring_gen10
|
||||
WHERE maritime=true AND admin_level <= 2
|
||||
);
|
||||
|
||||
-- etldoc: ne_10m_admin_0_boundary_lines_land -> boundary_z5
|
||||
-- etldoc: ne_10m_admin_1_states_provinces_lines -> boundary_z5
|
||||
-- etldoc: osm_border_linestring_gen9 -> boundary_z5
|
||||
|
||||
CREATE OR REPLACE VIEW boundary_z5 AS (
|
||||
SELECT geometry, 2 AS admin_level, false AS disputed, false AS maritime
|
||||
FROM ne_10m_admin_0_boundary_lines_land
|
||||
WHERE featurecla <> 'Lease limit'
|
||||
UNION ALL
|
||||
SELECT geometry, 4 AS admin_level, false AS disputed, false AS maritime
|
||||
FROM ne_10m_admin_1_states_provinces_lines
|
||||
WHERE scalerank <= 7 AND min_zoom <= 8
|
||||
UNION ALL
|
||||
SELECT geometry, admin_level, disputed, maritime
|
||||
FROM osm_border_linestring_gen9
|
||||
WHERE maritime=true AND admin_level <= 2
|
||||
WHERE admin_level <= 4
|
||||
);
|
||||
|
||||
-- etldoc: osm_border_linestring_gen8 -> boundary_z6
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
layer:
|
||||
id: "boundary"
|
||||
description: |
|
||||
Contains administrative boundaries (no maritime boundaries yet) as linestrings.
|
||||
Until z7 [Natural Earth data](http://www.naturalearthdata.com/downloads/10m-cultural-vectors/10m-admin-0-countries/)
|
||||
is used after which OSM boundaries ([`boundary=administrative`](http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative)) are present from z8 to z14.
|
||||
OSM data contains all [`admin_level`](http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative#admin_level)
|
||||
Contains administrative boundaries as linestrings.
|
||||
Until z4 [Natural Earth data](http://www.naturalearthdata.com/downloads/) is used after which
|
||||
OSM boundaries ([`boundary=administrative`](http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative))
|
||||
are present from z5 to z14 (also for maritime boundaries with admin_level <= 2 at z4).
|
||||
OSM data contains several [`admin_level`](http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative#admin_level)
|
||||
but for most styles it makes sense to just style `admin_level=2` and `admin_level=4`.
|
||||
fields:
|
||||
admin_level: |
|
||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 216 KiB Po Szerokość: | Wysokość: | Rozmiar: 218 KiB |
|
@ -26,6 +26,8 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||
COALESCE(nullif(as_numeric(min_height),-1),nullif(as_numeric(buildingmin_height),-1)) as min_height,
|
||||
COALESCE(nullif(as_numeric(levels),-1),nullif(as_numeric(buildinglevels),-1)) as levels,
|
||||
COALESCE(nullif(as_numeric(min_level),-1),nullif(as_numeric(buildingmin_level),-1)) as min_level,
|
||||
nullif(material, '') AS material,
|
||||
nullif(colour, '') AS colour,
|
||||
FALSE as hide_3d
|
||||
FROM
|
||||
osm_building_relation WHERE building = ''
|
||||
|
@ -38,6 +40,8 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||
COALESCE(nullif(as_numeric(min_height),-1),nullif(as_numeric(buildingmin_height),-1)) as min_height,
|
||||
COALESCE(nullif(as_numeric(levels),-1),nullif(as_numeric(buildinglevels),-1)) as levels,
|
||||
COALESCE(nullif(as_numeric(min_level),-1),nullif(as_numeric(buildingmin_level),-1)) as min_level,
|
||||
nullif(material, '') AS material,
|
||||
nullif(colour, '') AS colour,
|
||||
FALSE as hide_3d
|
||||
FROM
|
||||
osm_building_associatedstreet WHERE role = 'house'
|
||||
|
@ -49,6 +53,8 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||
COALESCE(nullif(as_numeric(min_height),-1),nullif(as_numeric(buildingmin_height),-1)) as min_height,
|
||||
COALESCE(nullif(as_numeric(levels),-1),nullif(as_numeric(buildinglevels),-1)) as levels,
|
||||
COALESCE(nullif(as_numeric(min_level),-1),nullif(as_numeric(buildingmin_level),-1)) as min_level,
|
||||
nullif(material, '') AS material,
|
||||
nullif(colour, '') AS colour,
|
||||
FALSE as hide_3d
|
||||
FROM
|
||||
osm_building_street WHERE role = 'house'
|
||||
|
@ -61,6 +67,8 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||
COALESCE(nullif(as_numeric(min_height),-1),nullif(as_numeric(buildingmin_height),-1)) as min_height,
|
||||
COALESCE(nullif(as_numeric(levels),-1),nullif(as_numeric(buildinglevels),-1)) as levels,
|
||||
COALESCE(nullif(as_numeric(min_level),-1),nullif(as_numeric(buildingmin_level),-1)) as min_level,
|
||||
nullif(material, '') AS material,
|
||||
nullif(colour, '') AS colour,
|
||||
FALSE as hide_3d
|
||||
FROM
|
||||
osm_building_polygon obp WHERE EXISTS (SELECT 1 FROM osm_building_multipolygon obm WHERE obp.osm_id = obm.osm_id)
|
||||
|
@ -72,6 +80,8 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||
COALESCE(nullif(as_numeric(obp.min_height),-1),nullif(as_numeric(obp.buildingmin_height),-1)) as min_height,
|
||||
COALESCE(nullif(as_numeric(obp.levels),-1),nullif(as_numeric(obp.buildinglevels),-1)) as levels,
|
||||
COALESCE(nullif(as_numeric(obp.min_level),-1),nullif(as_numeric(obp.buildingmin_level),-1)) as min_level,
|
||||
nullif(obp.material, '') AS material,
|
||||
nullif(obp.colour, '') AS colour,
|
||||
CASE WHEN obr.role='outline' THEN TRUE ELSE FALSE END as hide_3d
|
||||
FROM
|
||||
osm_building_polygon obp
|
||||
|
@ -80,14 +90,35 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||
);
|
||||
|
||||
CREATE OR REPLACE FUNCTION layer_building(bbox geometry, zoom_level int)
|
||||
RETURNS TABLE(geometry geometry, osm_id bigint, render_height int, render_min_height int, hide_3d boolean) AS $$
|
||||
RETURNS TABLE(geometry geometry, osm_id bigint, render_height int, render_min_height int, colour text, hide_3d boolean) AS $$
|
||||
SELECT geometry, osm_id, render_height, render_min_height,
|
||||
COALESCE(colour, CASE material
|
||||
-- Ordered by count from taginfo
|
||||
WHEN 'cement_block' THEN '#6a7880'
|
||||
WHEN 'brick' THEN '#bd8161'
|
||||
WHEN 'plaster' THEN '#dadbdb'
|
||||
WHEN 'wood' THEN '#d48741'
|
||||
WHEN 'concrete' THEN '#d3c2b0'
|
||||
WHEN 'metal' THEN '#b7b1a6'
|
||||
WHEN 'stone' THEN '#b4a995'
|
||||
WHEN 'mud' THEN '#9d8b75'
|
||||
WHEN 'steel' THEN '#b7b1a6' -- same as metal
|
||||
WHEN 'glass' THEN '#5a81a0'
|
||||
WHEN 'traditional' THEN '#bd8161' -- same as brick
|
||||
WHEN 'masonry' THEN '#bd8161' -- same as brick
|
||||
WHEN 'Brick' THEN '#bd8161' -- same as brick
|
||||
WHEN 'tin' THEN '#b7b1a6' -- same as metal
|
||||
WHEN 'timber_framing' THEN '#b3b0a9'
|
||||
WHEN 'sandstone' THEN '#b4a995' -- same as stone
|
||||
WHEN 'clay' THEN '#9d8b75' -- same as mud
|
||||
END) AS colour,
|
||||
CASE WHEN hide_3d THEN TRUE ELSE NULL::boolean END AS hide_3d
|
||||
FROM (
|
||||
-- etldoc: osm_building_polygon_gen1 -> layer_building:z13
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
NULL::int AS render_height, NULL::int AS render_min_height,
|
||||
NULL::text AS material, NULL::text AS colour,
|
||||
FALSE AS hide_3d
|
||||
FROM osm_building_polygon_gen1
|
||||
WHERE zoom_level = 13 AND geometry && bbox
|
||||
|
@ -97,6 +128,8 @@ RETURNS TABLE(geometry geometry, osm_id bigint, render_height int, render_min_he
|
|||
osm_id, geometry,
|
||||
ceil( COALESCE(height, levels*3.66,5))::int AS render_height,
|
||||
floor(COALESCE(min_height, min_level*3.66,0))::int AS render_min_height,
|
||||
material,
|
||||
colour,
|
||||
hide_3d
|
||||
FROM osm_all_buildings
|
||||
WHERE
|
||||
|
|
|
@ -5,12 +5,14 @@ layer:
|
|||
this is welcomed.
|
||||
buffer_size: 4
|
||||
datasource:
|
||||
query: (SELECT geometry, render_height, render_min_height, hide_3d FROM layer_building(!bbox!, z(!scale_denominator!))) AS t
|
||||
query: (SELECT geometry, render_height, render_min_height, colour, hide_3d FROM layer_building(!bbox!, z(!scale_denominator!))) AS t
|
||||
fields:
|
||||
render_height: |
|
||||
An approximated height from levels and height of the building or building:part after the method of Paul Norman in [OSM Clear](https://github.com/ClearTables/osm-clear). For future 3D rendering of buildings.
|
||||
render_min_height: |
|
||||
An approximated height from levels and height of the bottom of the building or building:part after the method of Paul Norman in [OSM Clear](https://github.com/ClearTables/osm-clear). For future 3D rendering of buildings.
|
||||
colour: |
|
||||
Colour
|
||||
hide_3d: |
|
||||
If True, building (part) should not be rendered in 3D. Currently, [building outlines](https://wiki.openstreetmap.org/wiki/Simple_3D_buildings) are marked as hide_3d.
|
||||
schema:
|
||||
|
|
|
@ -17,6 +17,12 @@ tables:
|
|||
type: area
|
||||
- name: webmerc_area
|
||||
type: webmerc_area
|
||||
- name: material
|
||||
key: building:material
|
||||
type: string
|
||||
- name: colour
|
||||
key: building:colour
|
||||
type: string
|
||||
- name: building
|
||||
key: building
|
||||
type: string
|
||||
|
@ -78,6 +84,12 @@ tables:
|
|||
key: building
|
||||
type: string
|
||||
from_member: true
|
||||
- name: material
|
||||
key: building:material
|
||||
type: string
|
||||
- name: colour
|
||||
key: building:colour
|
||||
type: string
|
||||
- name: buildingpart
|
||||
key: building:part
|
||||
type: string
|
||||
|
@ -166,6 +178,12 @@ tables:
|
|||
key: building
|
||||
type: string
|
||||
from_member: true
|
||||
- name: material
|
||||
key: building:material
|
||||
type: string
|
||||
- name: colour
|
||||
key: building:colour
|
||||
type: string
|
||||
- name: buildingpart
|
||||
key: building:part
|
||||
type: string
|
||||
|
@ -254,6 +272,12 @@ tables:
|
|||
key: building
|
||||
type: string
|
||||
from_member: true
|
||||
- name: material
|
||||
key: building:material
|
||||
type: string
|
||||
- name: colour
|
||||
key: building:colour
|
||||
type: string
|
||||
- name: buildingpart
|
||||
key: building:part
|
||||
type: string
|
||||
|
@ -342,6 +366,12 @@ tables:
|
|||
key: building
|
||||
type: string
|
||||
from_member: true
|
||||
- name: material
|
||||
key: building:material
|
||||
type: string
|
||||
- name: colour
|
||||
key: building:colour
|
||||
type: string
|
||||
- name: buildingpart
|
||||
key: building:part
|
||||
type: string
|
||||
|
|
|
@ -25,7 +25,7 @@ CREATE OR REPLACE FUNCTION housenumber.flag() RETURNS trigger AS $$
|
|||
BEGIN
|
||||
INSERT INTO housenumber.updates(t) VALUES ('y') ON CONFLICT(t) DO NOTHING;
|
||||
RETURN null;
|
||||
END;
|
||||
END;
|
||||
$$ language plpgsql;
|
||||
|
||||
CREATE OR REPLACE FUNCTION housenumber.refresh() RETURNS trigger AS
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
-- etldoc: layer_housenumber[shape=record fillcolor=lightpink, style="rounded,filled",
|
||||
-- etldoc: layer_housenumber[shape=record fillcolor=lightpink, style="rounded,filled",
|
||||
-- etldoc: label="layer_housenumber | <z14_> z14+" ] ;
|
||||
|
||||
CREATE OR REPLACE FUNCTION layer_housenumber(bbox geometry, zoom_level integer)
|
||||
|
|
|
@ -26,33 +26,35 @@ layer:
|
|||
or [`wetland`](http://wiki.openstreetmap.org/wiki/Key:wetland) tag.
|
||||
values:
|
||||
- allotments
|
||||
- bare_rock
|
||||
- beach
|
||||
- bog
|
||||
- farm
|
||||
- farmland
|
||||
- orchard
|
||||
- plant_nursery
|
||||
- vineyard
|
||||
- forest
|
||||
- garden
|
||||
- glacier
|
||||
- grass
|
||||
- grassland
|
||||
- glacier
|
||||
- meadow
|
||||
- forest
|
||||
- village_green
|
||||
- recreation_ground
|
||||
- park
|
||||
- garden
|
||||
- wetland
|
||||
- grassland
|
||||
- bog
|
||||
- swamp
|
||||
- wet_meadow
|
||||
- mangrove
|
||||
- marsh
|
||||
- meadow
|
||||
- orchard
|
||||
- park
|
||||
- plant_nursery
|
||||
- recreation_ground
|
||||
- reedbed
|
||||
- saltern
|
||||
- tidalflat
|
||||
- saltmarsh
|
||||
- mangrove
|
||||
- beach
|
||||
- sand
|
||||
- scree
|
||||
- swamp
|
||||
- tidalflat
|
||||
- village_green
|
||||
- vineyard
|
||||
- wet_meadow
|
||||
- wetland
|
||||
- wood
|
||||
datasource:
|
||||
geometry_field: geometry
|
||||
query: (SELECT geometry, class, subclass FROM layer_landcover(!bbox!, z(!scale_denominator!))) AS t
|
||||
|
|
|
@ -1,55 +1,55 @@
|
|||
-- etldoc: ne_50m_urban_areas -> landuse_z4
|
||||
CREATE OR REPLACE VIEW landuse_z4 AS (
|
||||
SELECT NULL::bigint AS osm_id, geometry, 'residential'::text AS landuse, NULL::text AS amenity, NULL::text AS leisure, NULL::text AS tourism, scalerank
|
||||
SELECT NULL::bigint AS osm_id, geometry, 'residential'::text AS landuse, NULL::text AS amenity, NULL::text AS leisure, NULL::text AS tourism, NULL::text AS place, scalerank
|
||||
FROM ne_50m_urban_areas
|
||||
WHERE scalerank <= 2
|
||||
);
|
||||
|
||||
-- etldoc: ne_50m_urban_areas -> landuse_z5
|
||||
CREATE OR REPLACE VIEW landuse_z5 AS (
|
||||
SELECT NULL::bigint AS osm_id, geometry, 'residential'::text AS landuse, NULL::text AS amenity, NULL::text AS leisure, NULL::text AS tourism, scalerank
|
||||
SELECT NULL::bigint AS osm_id, geometry, 'residential'::text AS landuse, NULL::text AS amenity, NULL::text AS leisure, NULL::text AS tourism, NULL::text AS place, scalerank
|
||||
FROM ne_50m_urban_areas
|
||||
);
|
||||
|
||||
-- etldoc: ne_10m_urban_areas -> landuse_z6
|
||||
CREATE OR REPLACE VIEW landuse_z6 AS (
|
||||
SELECT NULL::bigint AS osm_id, geometry, 'residential'::text AS landuse, NULL::text AS amenity, NULL::text AS leisure, NULL::text AS tourism, scalerank
|
||||
SELECT NULL::bigint AS osm_id, geometry, 'residential'::text AS landuse, NULL::text AS amenity, NULL::text AS leisure, NULL::text AS tourism, NULL::text AS place, scalerank
|
||||
FROM ne_10m_urban_areas
|
||||
);
|
||||
|
||||
-- etldoc: osm_landuse_polygon_gen5 -> landuse_z9
|
||||
CREATE OR REPLACE VIEW landuse_z9 AS (
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, NULL::int as scalerank
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, place, NULL::int as scalerank
|
||||
FROM osm_landuse_polygon_gen5
|
||||
);
|
||||
|
||||
-- etldoc: osm_landuse_polygon_gen4 -> landuse_z10
|
||||
CREATE OR REPLACE VIEW landuse_z10 AS (
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, NULL::int as scalerank
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, place, NULL::int as scalerank
|
||||
FROM osm_landuse_polygon_gen4
|
||||
);
|
||||
|
||||
-- etldoc: osm_landuse_polygon_gen3 -> landuse_z11
|
||||
CREATE OR REPLACE VIEW landuse_z11 AS (
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, NULL::int as scalerank
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, place, NULL::int as scalerank
|
||||
FROM osm_landuse_polygon_gen3
|
||||
);
|
||||
|
||||
-- etldoc: osm_landuse_polygon_gen2 -> landuse_z12
|
||||
CREATE OR REPLACE VIEW landuse_z12 AS (
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, NULL::int as scalerank
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, place, NULL::int as scalerank
|
||||
FROM osm_landuse_polygon_gen2
|
||||
);
|
||||
|
||||
-- etldoc: osm_landuse_polygon_gen1 -> landuse_z13
|
||||
CREATE OR REPLACE VIEW landuse_z13 AS (
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure,tourism, NULL::int as scalerank
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, place, NULL::int as scalerank
|
||||
FROM osm_landuse_polygon_gen1
|
||||
);
|
||||
|
||||
-- etldoc: osm_landuse_polygon -> landuse_z14
|
||||
CREATE OR REPLACE VIEW landuse_z14 AS (
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, NULL::int as scalerank
|
||||
SELECT osm_id, geometry, landuse, amenity, leisure, tourism, place, NULL::int as scalerank
|
||||
FROM osm_landuse_polygon
|
||||
);
|
||||
|
||||
|
@ -63,7 +63,8 @@ RETURNS TABLE(osm_id bigint, geometry geometry, class text) AS $$
|
|||
NULLIF(landuse, ''),
|
||||
NULLIF(amenity, ''),
|
||||
NULLIF(leisure, ''),
|
||||
NULLIF(tourism, '')
|
||||
NULLIF(tourism, ''),
|
||||
NULLIF(place, '')
|
||||
) AS class
|
||||
FROM (
|
||||
-- etldoc: landuse_z4 -> layer_landuse:z4
|
||||
|
|
|
@ -9,17 +9,12 @@ layer:
|
|||
description: |
|
||||
Use the **class** to assign special colors to areas.
|
||||
Original value of either the
|
||||
[`amenity`](http://wiki.openstreetmap.org/wiki/Key:amenity),
|
||||
[`tourism`](http://wiki.openstreetmap.org/wiki/Key:tourism),
|
||||
[`landuse`](http://wiki.openstreetmap.org/wiki/Key:landuse),
|
||||
or [`leisure`](http://wiki.openstreetmap.org/wiki/Key:leisure) tag.
|
||||
[`amenity`](http://wiki.openstreetmap.org/wiki/Key:amenity),
|
||||
[`leisure`](http://wiki.openstreetmap.org/wiki/Key:leisure),
|
||||
[`tourism`](http://wiki.openstreetmap.org/wiki/Key:tourism),
|
||||
or [`place`](http://wiki.openstreetmap.org/wiki/Key:place) tag.
|
||||
values:
|
||||
- school
|
||||
- university
|
||||
- kindergarten
|
||||
- college
|
||||
- library
|
||||
- hospital
|
||||
- railway
|
||||
- cemetery
|
||||
- military
|
||||
|
@ -27,12 +22,21 @@ layer:
|
|||
- commercial
|
||||
- industrial
|
||||
- retail
|
||||
- bus_station
|
||||
- school
|
||||
- university
|
||||
- kindergarten
|
||||
- college
|
||||
- library
|
||||
- hospital
|
||||
- stadium
|
||||
- pitch
|
||||
- playground
|
||||
- track
|
||||
- theme_park
|
||||
- bus_station
|
||||
- zoo
|
||||
- suburb
|
||||
- neighbourhood
|
||||
datasource:
|
||||
geometry_field: geometry
|
||||
query: (SELECT geometry, class FROM layer_landuse(!bbox!, z(!scale_denominator!))) AS t
|
||||
|
|
|
@ -46,19 +46,14 @@ tables:
|
|||
- name: tourism
|
||||
key: tourism
|
||||
type: string
|
||||
- name: place
|
||||
key: place
|
||||
type: string
|
||||
- name: area
|
||||
type: area
|
||||
- name: webmerc_area
|
||||
type: webmerc_area
|
||||
mapping:
|
||||
amenity:
|
||||
- bus_station
|
||||
- school
|
||||
- university
|
||||
- kindergarten
|
||||
- college
|
||||
- library
|
||||
- hospital
|
||||
landuse:
|
||||
- railway
|
||||
- cemetery
|
||||
|
@ -68,10 +63,22 @@ tables:
|
|||
- commercial
|
||||
- industrial
|
||||
- retail
|
||||
amenity:
|
||||
- bus_station
|
||||
- school
|
||||
- university
|
||||
- kindergarten
|
||||
- college
|
||||
- library
|
||||
- hospital
|
||||
leisure:
|
||||
- stadium
|
||||
- pitch
|
||||
- playground
|
||||
- track
|
||||
tourism:
|
||||
- theme_park
|
||||
- zoo
|
||||
place:
|
||||
- suburb
|
||||
- neighbourhood
|
||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 37 KiB Po Szerokość: | Wysokość: | Rozmiar: 52 KiB |
|
@ -2,29 +2,52 @@
|
|||
-- etldoc: layer_mountain_peak[shape=record fillcolor=lightpink,
|
||||
-- etldoc: style="rounded,filled", label="layer_mountain_peak | <z7_> z7+" ] ;
|
||||
|
||||
CREATE OR REPLACE FUNCTION layer_mountain_peak(bbox geometry, zoom_level integer, pixel_width numeric)
|
||||
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, ele int, ele_ft int, "rank" int) AS $$
|
||||
CREATE OR REPLACE FUNCTION layer_mountain_peak(
|
||||
bbox geometry,
|
||||
zoom_level integer,
|
||||
pixel_width numeric)
|
||||
RETURNS TABLE(
|
||||
osm_id bigint,
|
||||
geometry geometry,
|
||||
name text,
|
||||
name_en text,
|
||||
name_de text,
|
||||
class text,
|
||||
tags hstore,
|
||||
ele int,
|
||||
ele_ft int,
|
||||
"rank" int) AS
|
||||
$$
|
||||
-- etldoc: osm_peak_point -> layer_mountain_peak:z7_
|
||||
SELECT osm_id, geometry, name, name_en, name_de, tags, ele::int, ele_ft::int, rank::int
|
||||
FROM (
|
||||
SELECT osm_id, geometry, name,
|
||||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
substring(ele from E'^(-?\\d+)(\\D|$)')::int AS ele,
|
||||
round(substring(ele from E'^(-?\\d+)(\\D|$)')::int*3.2808399)::int AS ele_ft,
|
||||
row_number() OVER (
|
||||
PARTITION BY LabelGrid(geometry, 100 * pixel_width)
|
||||
ORDER BY (
|
||||
substring(ele from E'^(-?\\d+)(\\D|$)')::int +
|
||||
(CASE WHEN NULLIF(wikipedia, '') is not null THEN 10000 ELSE 0 END) +
|
||||
(CASE WHEN NULLIF(name, '') is not null THEN 10000 ELSE 0 END)
|
||||
) DESC
|
||||
)::int AS "rank"
|
||||
FROM osm_peak_point
|
||||
WHERE geometry && bbox AND ele is not null AND ele ~ E'^-?\\d+'
|
||||
) AS ranked_peaks
|
||||
WHERE zoom_level >= 7 AND (rank <= 5 OR zoom_level >= 14)
|
||||
ORDER BY "rank" ASC;
|
||||
SELECT
|
||||
osm_id,
|
||||
geometry,
|
||||
name,
|
||||
name_en,
|
||||
name_de,
|
||||
tags -> 'natural' AS class,
|
||||
tags,
|
||||
ele::int,
|
||||
ele_ft::int,
|
||||
rank::int FROM (
|
||||
SELECT osm_id, geometry, name,
|
||||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
substring(ele from E'^(-?\\d+)(\\D|$)')::int AS ele,
|
||||
round(substring(ele from E'^(-?\\d+)(\\D|$)')::int*3.2808399)::int AS ele_ft,
|
||||
row_number() OVER (
|
||||
PARTITION BY LabelGrid(geometry, 100 * pixel_width)
|
||||
ORDER BY (
|
||||
substring(ele from E'^(-?\\d+)(\\D|$)')::int +
|
||||
(CASE WHEN NULLIF(wikipedia, '') is not null THEN 10000 ELSE 0 END) +
|
||||
(CASE WHEN NULLIF(name, '') is not null THEN 10000 ELSE 0 END)
|
||||
) DESC
|
||||
)::int AS "rank"
|
||||
FROM osm_peak_point
|
||||
WHERE geometry && bbox AND ele is not null AND ele ~ E'^-?\\d+'
|
||||
) AS ranked_peaks
|
||||
WHERE zoom_level >= 7 AND (rank <= 5 OR zoom_level >= 14)
|
||||
ORDER BY "rank" ASC;
|
||||
|
||||
$$ LANGUAGE SQL IMMUTABLE;
|
||||
|
|
|
@ -28,3 +28,4 @@ tables:
|
|||
mapping:
|
||||
natural:
|
||||
- peak
|
||||
- volcano
|
||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 3.0 KiB Po Szerokość: | Wysokość: | Rozmiar: 4.2 KiB |
|
@ -8,13 +8,19 @@ layer:
|
|||
name: The OSM [`name`](http://wiki.openstreetmap.org/wiki/Key:name) value of the peak.
|
||||
name_en: English name `name:en` if available, otherwise `name`.
|
||||
name_de: German name `name:de` if available, otherwise `name` or `name:en`.
|
||||
class:
|
||||
description: |
|
||||
Use the **class** to differentiate between mountain peak and volcano.
|
||||
values:
|
||||
- peak
|
||||
- volcano
|
||||
ele: Elevation (`ele`) in meters.
|
||||
ele_ft: Elevation (`ele`) in feets.
|
||||
rank: Rank of the peak within one tile (starting at 1 that is the most important peak).
|
||||
datasource:
|
||||
geometry_field: geometry
|
||||
srid: 900913
|
||||
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, ele, ele_ft, rank FROM layer_mountain_peak(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t
|
||||
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, ele, ele_ft, rank FROM layer_mountain_peak(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t
|
||||
schema:
|
||||
- ./update_peak_point.sql
|
||||
- ./layer.sql
|
||||
|
|
|
@ -44,7 +44,7 @@ RETURNS TEXT AS $$
|
|||
WHEN subclass IN ('supermarket','deli','delicatessen','department_store','greengrocer','marketplace') THEN 'grocery'
|
||||
WHEN subclass IN ('books','library') THEN 'library'
|
||||
WHEN subclass IN ('university','college') THEN 'college'
|
||||
WHEN subclass IN ('hotel','motel','bed_and_breakfast','guest_house','hostel','chalet','alpine_hut','camp_site') THEN 'lodging'
|
||||
WHEN subclass IN ('hotel','motel','bed_and_breakfast','guest_house','hostel','chalet','alpine_hut','dormitory') THEN 'lodging'
|
||||
WHEN subclass IN ('chocolate','confectionery') THEN 'ice_cream'
|
||||
WHEN subclass IN ('post_box','post_office') THEN 'post'
|
||||
WHEN subclass IN ('cafe') THEN 'cafe'
|
||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 28 KiB Po Szerokość: | Wysokość: | Rozmiar: 29 KiB |
|
@ -12,6 +12,7 @@ def_poi_mapping_amenity: &poi_mapping_amenity
|
|||
- bank
|
||||
- bar
|
||||
- bbq
|
||||
- bicycle_parking
|
||||
- bicycle_rental
|
||||
- biergarten
|
||||
- bus_station
|
||||
|
@ -35,8 +36,10 @@ def_poi_mapping_amenity: &poi_mapping_amenity
|
|||
- kindergarten
|
||||
- library
|
||||
- marketplace
|
||||
- motorcycle_parking
|
||||
- nightclub
|
||||
- nursing_home
|
||||
- parking
|
||||
- pharmacy
|
||||
- place_of_worship
|
||||
- police
|
||||
|
@ -70,6 +73,10 @@ def_poi_mapping_barrier: &poi_mapping_barrier
|
|||
- stile
|
||||
- toll_booth
|
||||
|
||||
# building values , see http://taginfo.openstreetmap.org/keys/building#values
|
||||
def_poi_mapping_building: &poi_mapping_building
|
||||
- dormitory
|
||||
|
||||
# highway values , see http://taginfo.openstreetmap.org/keys/highway#values
|
||||
def_poi_mapping_highway: &poi_mapping_highway
|
||||
- bus_stop
|
||||
|
@ -86,6 +93,7 @@ def_poi_mapping_landuse: &poi_mapping_landuse
|
|||
- brownfield
|
||||
- cemetery
|
||||
- reservoir
|
||||
- winter_sports
|
||||
|
||||
# leisure values , see http://taginfo.openstreetmap.org/keys/leisure#values
|
||||
def_poi_mapping_leisure: &poi_mapping_leisure
|
||||
|
@ -306,132 +314,78 @@ def_poi_mapping_tourism: &poi_mapping_tourism
|
|||
def_poi_mapping_waterway: &poi_mapping_waterway
|
||||
- dock
|
||||
|
||||
def_poi_fields: &poi_fields
|
||||
- name: osm_id
|
||||
type: id
|
||||
- name: geometry
|
||||
type: geometry
|
||||
- name: name
|
||||
key: name
|
||||
type: string
|
||||
- name: name_en
|
||||
key: name:en
|
||||
type: string
|
||||
- name: name_de
|
||||
key: name:de
|
||||
type: string
|
||||
- name: tags
|
||||
type: hstore_tags
|
||||
- name: subclass
|
||||
type: mapping_value
|
||||
- name: mapping_key
|
||||
type: mapping_key
|
||||
- name: station
|
||||
key: station
|
||||
type: string
|
||||
- name: funicular
|
||||
key: funicular
|
||||
type: string
|
||||
- name: information
|
||||
key: information
|
||||
type: string
|
||||
- name: uic_ref
|
||||
key: uic_ref
|
||||
type: string
|
||||
- name: religion
|
||||
key: religion
|
||||
type: string
|
||||
- name: level
|
||||
key: level
|
||||
type: integer
|
||||
- name: indoor
|
||||
key: indoor
|
||||
type: bool
|
||||
- name: layer
|
||||
key: layer
|
||||
type: integer
|
||||
- name: sport
|
||||
key: sport
|
||||
type: string
|
||||
|
||||
def_poi_mapping: &poi_mapping
|
||||
aerialway: *poi_mapping_aerialway
|
||||
amenity: *poi_mapping_amenity
|
||||
barrier: *poi_mapping_barrier
|
||||
building: *poi_mapping_building
|
||||
highway: *poi_mapping_highway
|
||||
historic: *poi_mapping_historic
|
||||
landuse: *poi_mapping_landuse
|
||||
leisure: *poi_mapping_leisure
|
||||
railway: *poi_mapping_railway
|
||||
shop: *poi_mapping_shop
|
||||
sport: *poi_mapping_sport
|
||||
tourism: *poi_mapping_tourism
|
||||
waterway: *poi_mapping_waterway
|
||||
|
||||
tables:
|
||||
# etldoc: imposm3 -> osm_poi_point
|
||||
poi_point:
|
||||
type: point
|
||||
fields:
|
||||
- name: osm_id
|
||||
type: id
|
||||
- name: geometry
|
||||
type: geometry
|
||||
- name: name
|
||||
key: name
|
||||
type: string
|
||||
- name: name_en
|
||||
key: name:en
|
||||
type: string
|
||||
- name: name_de
|
||||
key: name:de
|
||||
type: string
|
||||
- name: tags
|
||||
type: hstore_tags
|
||||
- name: subclass
|
||||
type: mapping_value
|
||||
- name: mapping_key
|
||||
type: mapping_key
|
||||
- name: station
|
||||
key: station
|
||||
type: string
|
||||
- name: funicular
|
||||
key: funicular
|
||||
type: string
|
||||
- name: information
|
||||
key: information
|
||||
type: string
|
||||
- name: uic_ref
|
||||
key: uic_ref
|
||||
type: string
|
||||
- name: religion
|
||||
key: religion
|
||||
type: string
|
||||
- name: level
|
||||
key: level
|
||||
type: integer
|
||||
- name: indoor
|
||||
key: indoor
|
||||
type: bool
|
||||
- name: layer
|
||||
key: layer
|
||||
type: integer
|
||||
- name: sport
|
||||
key: sport
|
||||
type: string
|
||||
mapping:
|
||||
aerialway: *poi_mapping_aerialway
|
||||
amenity: *poi_mapping_amenity
|
||||
barrier: *poi_mapping_barrier
|
||||
highway: *poi_mapping_highway
|
||||
historic: *poi_mapping_historic
|
||||
landuse: *poi_mapping_landuse
|
||||
leisure: *poi_mapping_leisure
|
||||
railway: *poi_mapping_railway
|
||||
shop: *poi_mapping_shop
|
||||
sport: *poi_mapping_sport
|
||||
tourism: *poi_mapping_tourism
|
||||
waterway: *poi_mapping_waterway
|
||||
|
||||
fields: *poi_fields
|
||||
mapping: *poi_mapping
|
||||
|
||||
# etldoc: imposm3 -> osm_poi_polygon
|
||||
poi_polygon:
|
||||
type: polygon
|
||||
fields:
|
||||
- name: osm_id
|
||||
type: id
|
||||
- name: geometry
|
||||
type: geometry
|
||||
- name: name
|
||||
key: name
|
||||
type: string
|
||||
- name: name_en
|
||||
key: name:en
|
||||
type: string
|
||||
- name: name_de
|
||||
key: name:de
|
||||
type: string
|
||||
- name: tags
|
||||
type: hstore_tags
|
||||
- name: subclass
|
||||
type: mapping_value
|
||||
- name: mapping_key
|
||||
type: mapping_key
|
||||
- name: station
|
||||
key: station
|
||||
type: string
|
||||
- name: funicular
|
||||
key: funicular
|
||||
type: string
|
||||
- name: information
|
||||
key: information
|
||||
type: string
|
||||
- name: uic_ref
|
||||
key: uic_ref
|
||||
type: string
|
||||
- name: religion
|
||||
key: religion
|
||||
type: string
|
||||
- name: level
|
||||
key: level
|
||||
type: integer
|
||||
- name: indoor
|
||||
key: indoor
|
||||
type: bool
|
||||
- name: layer
|
||||
key: layer
|
||||
type: integer
|
||||
- name: sport
|
||||
key: sport
|
||||
type: string
|
||||
mapping:
|
||||
aerialway: *poi_mapping_aerialway
|
||||
amenity: *poi_mapping_amenity
|
||||
barrier: *poi_mapping_barrier
|
||||
highway: *poi_mapping_highway
|
||||
historic: *poi_mapping_historic
|
||||
landuse: *poi_mapping_landuse
|
||||
leisure: *poi_mapping_leisure
|
||||
railway: *poi_mapping_railway
|
||||
shop: *poi_mapping_shop
|
||||
sport: *poi_mapping_sport
|
||||
tourism: *poi_mapping_tourism
|
||||
waterway: *poi_mapping_waterway
|
||||
fields: *poi_fields
|
||||
mapping: *poi_mapping
|
||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 1.2 MiB Po Szerokość: | Wysokość: | Rozmiar: 1.2 MiB |
|
@ -18,15 +18,21 @@ layer:
|
|||
description: |
|
||||
Original value of either the
|
||||
[`amenity`](http://wiki.openstreetmap.org/wiki/Key:amenity),
|
||||
[`leisure`](http://wiki.openstreetmap.org/wiki/Key:leisure),
|
||||
[`landuse`](http://wiki.openstreetmap.org/wiki/Key:landuse),
|
||||
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
|
||||
[`station`](http://wiki.openstreetmap.org/wiki/Key:station),
|
||||
[`sport`](http://wiki.openstreetmap.org/wiki/Key:sport),
|
||||
[`tourism`](http://wiki.openstreetmap.org/wiki/Key:tourism),
|
||||
[`barrier`](http://wiki.openstreetmap.org/wiki/Key:barrier),
|
||||
[`historic`](http://wiki.openstreetmap.org/wiki/Key:historic),
|
||||
[`information`](http://wiki.openstreetmap.org/wiki/Key:information),
|
||||
[`religion`](http://wiki.openstreetmap.org/wiki/Key:religion)
|
||||
or [`shop`](http://wiki.openstreetmap.org/wiki/Key:shop)
|
||||
[`landuse`](http://wiki.openstreetmap.org/wiki/Key:landuse),
|
||||
[`leisure`](http://wiki.openstreetmap.org/wiki/Key:leisure),
|
||||
[`railway`](http://wiki.openstreetmap.org/wiki/Key:railway),
|
||||
[`shop`](http://wiki.openstreetmap.org/wiki/Key:shop),
|
||||
[`sport`](http://wiki.openstreetmap.org/wiki/Key:sport),
|
||||
[`station`](http://wiki.openstreetmap.org/wiki/Key:station),
|
||||
[`religion`](http://wiki.openstreetmap.org/wiki/Key:religion),
|
||||
[`tourism`](http://wiki.openstreetmap.org/wiki/Key:tourism),
|
||||
[`aerialway`](http://wiki.openstreetmap.org/wiki/Key:aerialway),
|
||||
[`building`](http://wiki.openstreetmap.org/wiki/Key:building),
|
||||
[`highway`](http://wiki.openstreetmap.org/wiki/Key:highway)
|
||||
or [`waterway`](http://wiki.openstreetmap.org/wiki/Key:waterway)
|
||||
tag. Use this to do more precise styling.
|
||||
rank: |
|
||||
The POIs are ranked ascending according to their importance within a grid. The `rank` value shows the
|
||||
|
|
|
@ -42,3 +42,13 @@ CREATE OR REPLACE FUNCTION service_value(service TEXT) RETURNS TEXT AS $$
|
|||
ELSE NULL
|
||||
END;
|
||||
$$ LANGUAGE SQL IMMUTABLE STRICT;
|
||||
|
||||
-- Limit surface to only the most important values to ensure
|
||||
-- we always know the values of surface
|
||||
CREATE OR REPLACE FUNCTION surface_value(surface TEXT) RETURNS TEXT AS $$
|
||||
SELECT CASE
|
||||
WHEN surface IN ('paved', 'asphalt', 'cobblestone', 'concrete', 'concrete:lanes', 'concrete:plates', 'metal', 'paving_stones', 'sett', 'unhewn_cobblestone', 'wood') THEN 'paved'
|
||||
WHEN surface IN ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass', 'grass_paver', 'gravel', 'gravel_turf', 'ground', 'ice', 'mud', 'pebblestone', 'salt', 'sand', 'snow', 'woodchips') THEN 'unpaved'
|
||||
ELSE NULL
|
||||
END;
|
||||
$$ LANGUAGE SQL IMMUTABLE STRICT;
|
||||
|
|
|
@ -8,7 +8,7 @@ $$ LANGUAGE SQL IMMUTABLE STRICT;
|
|||
CREATE OR REPLACE FUNCTION layer_transportation(bbox geometry, zoom_level int)
|
||||
RETURNS TABLE(osm_id bigint, geometry geometry, class text, subclass text,
|
||||
ramp int, oneway int, brunnel TEXT, service TEXT, layer INT, level INT,
|
||||
indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
||||
indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale, surface TEXT) AS $$
|
||||
SELECT
|
||||
osm_id, geometry,
|
||||
CASE
|
||||
|
@ -37,7 +37,8 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULLIF(bicycle, '') AS bicycle,
|
||||
NULLIF(foot, '') AS foot,
|
||||
NULLIF(horse, '') AS horse,
|
||||
NULLIF(mtb_scale, '') AS mtb_scale
|
||||
NULLIF(mtb_scale, '') AS mtb_scale,
|
||||
NULLIF(surface, '') AS surface
|
||||
FROM (
|
||||
-- etldoc: osm_transportation_merge_linestring_gen7 -> layer_transportation:z4
|
||||
SELECT
|
||||
|
@ -49,6 +50,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
NULL AS surface,
|
||||
z_order
|
||||
FROM osm_transportation_merge_linestring_gen7
|
||||
WHERE zoom_level = 4
|
||||
|
@ -64,7 +66,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_transportation_merge_linestring_gen6
|
||||
WHERE zoom_level = 5
|
||||
UNION ALL
|
||||
|
@ -79,7 +81,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_transportation_merge_linestring_gen5
|
||||
WHERE zoom_level = 6
|
||||
UNION ALL
|
||||
|
@ -94,7 +96,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_transportation_merge_linestring_gen4
|
||||
WHERE zoom_level = 7
|
||||
UNION ALL
|
||||
|
@ -109,7 +111,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_transportation_merge_linestring_gen3
|
||||
WHERE zoom_level = 8
|
||||
UNION ALL
|
||||
|
@ -125,7 +127,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
bicycle, foot, horse, mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_highway_linestring_gen2
|
||||
WHERE zoom_level BETWEEN 9 AND 10
|
||||
AND st_length(geometry)>zres(11)
|
||||
|
@ -141,7 +143,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
bicycle, foot, horse, mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_highway_linestring_gen1
|
||||
WHERE zoom_level = 11
|
||||
AND st_length(geometry)>zres(12)
|
||||
|
@ -163,6 +165,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
ELSE NULL::boolean
|
||||
END AS indoor,
|
||||
bicycle, foot, horse, mtb_scale,
|
||||
surface_value(surface) AS "surface",
|
||||
z_order
|
||||
FROM osm_highway_linestring
|
||||
WHERE NOT is_area AND (
|
||||
|
@ -195,7 +198,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
NULL::int AS layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL as surface, z_order
|
||||
FROM osm_railway_linestring_gen5
|
||||
WHERE zoom_level = 8
|
||||
AND railway='rail' AND service = '' and usage='main'
|
||||
|
@ -211,7 +214,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
NULL::boolean AS is_ramp, NULL::int AS is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_railway_linestring_gen4
|
||||
WHERE zoom_level = 9
|
||||
AND railway='rail' AND service = '' and usage='main'
|
||||
|
@ -225,7 +228,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_railway_linestring_gen3
|
||||
WHERE zoom_level = 10
|
||||
AND railway IN ('rail', 'narrow_gauge') AND service = ''
|
||||
|
@ -239,7 +242,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL as surface, z_order
|
||||
FROM osm_railway_linestring_gen2
|
||||
WHERE zoom_level = 11
|
||||
AND railway IN ('rail', 'narrow_gauge', 'light_rail') AND service = ''
|
||||
|
@ -253,7 +256,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL as surface, z_order
|
||||
FROM osm_railway_linestring_gen1
|
||||
WHERE zoom_level = 12
|
||||
AND railway IN ('rail', 'narrow_gauge', 'light_rail') AND service = ''
|
||||
|
@ -268,7 +271,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL as surface, z_order
|
||||
FROM osm_railway_linestring
|
||||
WHERE zoom_level = 13
|
||||
AND railway IN ('rail', 'narrow_gauge', 'light_rail') AND service = ''
|
||||
|
@ -283,7 +286,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_aerialway_linestring_gen1
|
||||
WHERE zoom_level = 12
|
||||
UNION ALL
|
||||
|
@ -297,7 +300,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_aerialway_linestring
|
||||
WHERE zoom_level >= 13
|
||||
UNION ALL
|
||||
|
@ -310,7 +313,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_shipway_linestring_gen2
|
||||
WHERE zoom_level = 11
|
||||
UNION ALL
|
||||
|
@ -324,6 +327,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_shipway_linestring_gen1
|
||||
WHERE zoom_level = 12
|
||||
UNION ALL
|
||||
|
@ -337,7 +341,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
is_bridge, is_tunnel, is_ford, is_ramp, is_oneway, NULL as man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_shipway_linestring
|
||||
WHERE zoom_level >= 13
|
||||
UNION ALL
|
||||
|
@ -358,7 +362,7 @@ indoor INT, bicycle TEXT, foot TEXT, horse TEXT, mtb_scale TEXT) AS $$
|
|||
FALSE AS is_ramp, FALSE::int AS is_oneway, man_made,
|
||||
layer, NULL::int AS level, NULL::boolean AS indoor,
|
||||
NULL as bicycle, NULL as foot, NULL as horse, NULL as mtb_scale,
|
||||
z_order
|
||||
NULL AS surface, z_order
|
||||
FROM osm_highway_polygon
|
||||
-- We do not want underground pedestrian areas for now
|
||||
WHERE zoom_level >= 13
|
||||
|
|
|
@ -148,6 +148,9 @@ horse_field: &horse
|
|||
mtb_scale_field: &mtb_scale
|
||||
key: mtb:scale
|
||||
name: mtb_scale
|
||||
surface_field: &surface
|
||||
key: surface
|
||||
name: surface
|
||||
type: string
|
||||
|
||||
tables:
|
||||
|
@ -188,6 +191,7 @@ tables:
|
|||
- *foot
|
||||
- *horse
|
||||
- *mtb_scale
|
||||
- *surface
|
||||
mapping:
|
||||
highway:
|
||||
- motorway
|
||||
|
@ -291,6 +295,7 @@ tables:
|
|||
mapping:
|
||||
aerialway:
|
||||
- cable_car
|
||||
- gondola
|
||||
|
||||
# etldoc: imposm3 -> osm_shipway_linestring
|
||||
shipway_linestring:
|
||||
|
|
Przed Szerokość: | Wysokość: | Rozmiar: 80 KiB Po Szerokość: | Wysokość: | Rozmiar: 117 KiB |
|
@ -36,6 +36,7 @@ layer:
|
|||
- rail
|
||||
- transit
|
||||
- cable_car
|
||||
- gondola
|
||||
- ferry
|
||||
- bridge
|
||||
- pier
|
||||
|
@ -117,10 +118,16 @@ layer:
|
|||
mtb_scale:
|
||||
description: |
|
||||
Original value of the [`mtb:scale`](http://wiki.openstreetmap.org/wiki/Key:mtb:scale) tag (highways only).
|
||||
surface:
|
||||
description: |
|
||||
Values of [`surface`](https://wiki.openstreetmap.org/wiki/Key:surface) tag devided into 2 groups `paved` (paved, asphalt, cobblestone, concrete, concrete:lanes, concrete:plates, metal, paving_stones, sett, unhewn_cobblestone, wood) and `unpaved` (unpaved, compacted, dirt, earth, fine_gravel, grass, grass_paver, gravel, gravel_turf, ground, ice, mud, pebblestone, salt, sand, snow, woodchips).
|
||||
values:
|
||||
- paved
|
||||
- unpaved
|
||||
datasource:
|
||||
geometry_field: geometry
|
||||
srid: 900913
|
||||
query: (SELECT geometry, class, subclass, oneway, ramp, brunnel, service, layer, level, indoor, bicycle, foot, horse, mtb_scale FROM layer_transportation(!bbox!, z(!scale_denominator!))) AS t
|
||||
query: (SELECT geometry, class, subclass, oneway, ramp, brunnel, service, layer, level, indoor, bicycle, foot, horse, mtb_scale, surface FROM layer_transportation(!bbox!, z(!scale_denominator!))) AS t
|
||||
schema:
|
||||
- ./class.sql
|
||||
- ./update_transportation_merge.sql
|
||||
|
|
|
@ -69,6 +69,9 @@ tables:
|
|||
- name: waterway
|
||||
key: waterway
|
||||
type: string
|
||||
- name: is_intermittent
|
||||
key: intermittent
|
||||
type: bool
|
||||
filters:
|
||||
reject:
|
||||
covered: ["yes"]
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
CREATE OR REPLACE FUNCTION water_class(waterway TEXT) RETURNS TEXT AS $$
|
||||
SELECT CASE
|
||||
WHEN waterway='' THEN 'lake'
|
||||
WHEN waterway='lake' THEN 'lake'
|
||||
WHEN waterway='dock' THEN 'dock'
|
||||
ELSE 'river'
|
||||
END;
|
||||
|
@ -10,122 +11,131 @@ $$ LANGUAGE SQL IMMUTABLE;
|
|||
|
||||
CREATE OR REPLACE VIEW water_z0 AS (
|
||||
-- etldoc: ne_110m_ocean -> water_z0
|
||||
SELECT geometry, 'ocean'::text AS class FROM ne_110m_ocean
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM ne_110m_ocean
|
||||
UNION ALL
|
||||
-- etldoc: ne_110m_lakes -> water_z0
|
||||
SELECT geometry, 'lake'::text AS class FROM ne_110m_lakes
|
||||
SELECT geometry, 'lake'::text AS class, NULL::boolean AS is_intermittent FROM ne_110m_lakes
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z1 AS (
|
||||
-- etldoc: ne_110m_ocean -> water_z1
|
||||
SELECT geometry, 'ocean'::text AS class FROM ne_110m_ocean
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM ne_110m_ocean
|
||||
UNION ALL
|
||||
-- etldoc: ne_110m_lakes -> water_z1
|
||||
SELECT geometry, 'lake'::text AS class FROM ne_110m_lakes
|
||||
SELECT geometry, 'lake'::text AS class, NULL::boolean AS is_intermittent FROM ne_110m_lakes
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z2 AS (
|
||||
-- etldoc: ne_50m_ocean -> water_z2
|
||||
SELECT geometry, 'ocean'::text AS class FROM ne_50m_ocean
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM ne_50m_ocean
|
||||
UNION ALL
|
||||
-- etldoc: ne_50m_lakes -> water_z2
|
||||
SELECT geometry, 'lake'::text AS class FROM ne_50m_lakes
|
||||
SELECT geometry, 'lake'::text AS class, NULL::boolean AS is_intermittent FROM ne_50m_lakes
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z4 AS (
|
||||
-- etldoc: ne_50m_ocean -> water_z4
|
||||
SELECT geometry, 'ocean'::text AS class FROM ne_50m_ocean
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM ne_50m_ocean
|
||||
UNION ALL
|
||||
-- etldoc: ne_50m_lakes -> water_z4
|
||||
SELECT geometry, 'lake'::text AS class FROM ne_50m_lakes
|
||||
SELECT geometry, 'lake'::text AS class, NULL::boolean AS is_intermittent FROM ne_50m_lakes
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z5 AS (
|
||||
-- etldoc: ne_10m_ocean -> water_z5
|
||||
SELECT geometry, 'ocean'::text AS class FROM ne_10m_ocean
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM ne_10m_ocean
|
||||
UNION ALL
|
||||
-- etldoc: ne_10m_lakes -> water_z5
|
||||
SELECT geometry, 'lake'::text AS class FROM ne_10m_lakes
|
||||
SELECT geometry, 'lake'::text AS class, NULL::boolean AS is_intermittent FROM ne_10m_lakes
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z6 AS (
|
||||
-- etldoc: ne_10m_ocean -> water_z6
|
||||
SELECT geometry, 'ocean'::text AS class FROM ne_10m_ocean
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM ne_10m_ocean
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon_gen6 -> water_z6
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon_gen6
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon_gen6
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z7 AS (
|
||||
-- etldoc: ne_10m_ocean -> water_z7
|
||||
SELECT geometry, 'ocean'::text AS class FROM ne_10m_ocean
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM ne_10m_ocean
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon_gen5 -> water_z7
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon_gen5
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon_gen5
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z8 AS (
|
||||
-- etldoc: osm_ocean_polygon_gen4 -> water_z8
|
||||
SELECT geometry, 'ocean'::text AS class FROM osm_ocean_polygon_gen4
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM osm_ocean_polygon_gen4
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon_gen4 -> water_z8
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon_gen4
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon_gen4
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z9 AS (
|
||||
-- etldoc: osm_ocean_polygon_gen3 -> water_z9
|
||||
SELECT geometry, 'ocean'::text AS class FROM osm_ocean_polygon_gen3
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM osm_ocean_polygon_gen3
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon_gen3 -> water_z9
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon_gen3
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon_gen3
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z10 AS (
|
||||
-- etldoc: osm_ocean_polygon_gen2 -> water_z10
|
||||
SELECT geometry, 'ocean'::text AS class FROM osm_ocean_polygon_gen2
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM osm_ocean_polygon_gen2
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon_gen2 -> water_z10
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon_gen2
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon_gen2
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z11 AS (
|
||||
-- etldoc: osm_ocean_polygon_gen1 -> water_z11
|
||||
SELECT geometry, 'ocean'::text AS class FROM osm_ocean_polygon_gen1
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM osm_ocean_polygon_gen1
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon_gen1 -> water_z11
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon_gen1
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon_gen1
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z12 AS (
|
||||
-- etldoc: osm_ocean_polygon_gen1 -> water_z12
|
||||
SELECT geometry, 'ocean'::text AS class FROM osm_ocean_polygon
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM osm_ocean_polygon
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon -> water_z12
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z13 AS (
|
||||
-- etldoc: osm_ocean_polygon -> water_z13
|
||||
SELECT geometry, 'ocean'::text AS class FROM osm_ocean_polygon
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM osm_ocean_polygon
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon -> water_z13
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
CREATE OR REPLACE VIEW water_z14 AS (
|
||||
-- etldoc: osm_ocean_polygon -> water_z14
|
||||
SELECT geometry, 'ocean'::text AS class FROM osm_ocean_polygon
|
||||
SELECT geometry, 'ocean'::text AS class, NULL::boolean AS is_intermittent FROM osm_ocean_polygon
|
||||
UNION ALL
|
||||
-- etldoc: osm_water_polygon -> water_z14
|
||||
SELECT geometry, water_class(waterway) AS class FROM osm_water_polygon
|
||||
SELECT geometry, water_class(waterway) AS class, is_intermittent FROM osm_water_polygon
|
||||
WHERE "natural" != 'bay'
|
||||
);
|
||||
|
||||
-- etldoc: layer_water [shape=record fillcolor=lightpink, style="rounded,filled",
|
||||
-- etldoc: label="layer_water |<z0> z0|<z1>z1|<z2>z2|<z3>z3 |<z4> z4|<z5>z5|<z6>z6|<z7>z7| <z8> z8 |<z9> z9 |<z10> z10 |<z11> z11 |<z12> z12|<z13> z13|<z14_> z14+" ] ;
|
||||
|
||||
CREATE OR REPLACE FUNCTION layer_water (bbox geometry, zoom_level int)
|
||||
RETURNS TABLE(geometry geometry, class text) AS $$
|
||||
SELECT geometry, class::text FROM (
|
||||
RETURNS TABLE(geometry geometry, class text, intermittent int) AS $$
|
||||
SELECT geometry, class::text, is_intermittent::int AS intermittent FROM (
|
||||
-- etldoc: water_z0 -> layer_water:z0
|
||||
SELECT * FROM water_z0 WHERE zoom_level = 0
|
||||
UNION ALL
|
||||
|
|
|
@ -4,22 +4,26 @@ layer:
|
|||
Water polygons representing oceans and lakes. Covered watered areas are excluded (`covered=yes`).
|
||||
On low zoom levels all water originates from Natural Earth. To get a more correct display of the south pole you should also
|
||||
style the covering ice shelves over the water.
|
||||
On higher zoom levels water polygons from [OpenStreetMapData](http://openstreetmapdata.com/) are used.
|
||||
On higher zoom levels water polygons from [OpenStreetMapData](http://osmdata.openstreetmap.de/) are used.
|
||||
The polygons are split into many smaller polygons to improve rendering performance.
|
||||
This however can lead to less rendering options in clients since these boundaries show up. So you might not be
|
||||
able to use border styling for ocean water features.
|
||||
fields:
|
||||
class:
|
||||
description: |
|
||||
All water polygons from [OpenStreetMapData](http://openstreetmapdata.com/) have the class `ocean`.
|
||||
All water polygons from [OpenStreetMapData](http://osmdata.openstreetmap.de/) have the class `ocean`.
|
||||
Water bodies are classified as `lake` or `river` for water bodies with the [`waterway`](http://wiki.openstreetmap.org/wiki/Key:waterway) tag.
|
||||
values:
|
||||
- ocean
|
||||
- lake
|
||||
- river
|
||||
intermittent:
|
||||
description: |
|
||||
Mark with `1` if it is an [intermittent](http://wiki.openstreetmap.org/wiki/Key:intermittent) water polygon.
|
||||
values: [0, 1]
|
||||
buffer_size: 4
|
||||
datasource:
|
||||
query: (SELECT geometry, class FROM layer_water(!bbox!, z(!scale_denominator!))) AS t
|
||||
query: (SELECT geometry, class, intermittent FROM layer_water(!bbox!, z(!scale_denominator!))) AS t
|
||||
schema:
|
||||
- ./water.sql
|
||||
datasources:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
-- etldoc: label="layer_water_name | <z0_8> z0_8 | <z9_13> z9_13 | <z14_> z14+" ] ;
|
||||
|
||||
CREATE OR REPLACE FUNCTION layer_water_name(bbox geometry, zoom_level integer)
|
||||
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text) AS $$
|
||||
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text, intermittent int) AS $$
|
||||
-- etldoc: osm_water_lakeline -> layer_water_name:z9_13
|
||||
-- etldoc: osm_water_lakeline -> layer_water_name:z14_
|
||||
SELECT
|
||||
|
@ -14,7 +14,8 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
|
|||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
'lake'::text AS class
|
||||
'lake'::text AS class,
|
||||
is_intermittent::int AS intermittent
|
||||
FROM osm_water_lakeline
|
||||
WHERE geometry && bbox
|
||||
AND ((zoom_level BETWEEN 9 AND 13 AND LineLabel(zoom_level, NULLIF(name, ''), geometry))
|
||||
|
@ -30,7 +31,8 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
|
|||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
'lake'::text AS class
|
||||
'lake'::text AS class,
|
||||
is_intermittent::int AS intermittent
|
||||
FROM osm_water_point
|
||||
WHERE geometry && bbox AND (
|
||||
(zoom_level BETWEEN 9 AND 13 AND area > 70000*2^(20-zoom_level))
|
||||
|
@ -44,7 +46,8 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
|
|||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
tags,
|
||||
place::text AS class
|
||||
place::text AS class,
|
||||
is_intermittent::int AS intermittent
|
||||
FROM osm_marine_point
|
||||
WHERE geometry && bbox AND (
|
||||
place = 'ocean'
|
||||
|
|
|
@ -24,6 +24,9 @@ tables:
|
|||
- name: rank
|
||||
key: rank
|
||||
type: integer
|
||||
- name: is_intermittent
|
||||
key: intermittent
|
||||
type: bool
|
||||
filters:
|
||||
require:
|
||||
name: ["__any__"]
|
||||
|
|
|
@ -12,7 +12,7 @@ BEGIN
|
|||
-- etldoc: osm_marine_point -> osm_marine_point
|
||||
|
||||
WITH important_marine_point AS (
|
||||
SELECT osm.geometry, osm.osm_id, osm.name, osm.name_en, ne.scalerank
|
||||
SELECT osm.geometry, osm.osm_id, osm.name, osm.name_en, ne.scalerank, osm.is_intermittent
|
||||
FROM ne_10m_geography_marine_polys AS ne, osm_marine_point AS osm
|
||||
WHERE trim(regexp_replace(ne.name, '\\s+', ' ', 'g')) ILIKE osm.name
|
||||
OR trim(regexp_replace(ne.name, '\\s+', ' ', 'g')) ILIKE osm.tags->'name:en'
|
||||
|
|
|
@ -10,7 +10,8 @@ CREATE MATERIALIZED VIEW osm_water_lakeline AS (
|
|||
ll.wkb_geometry AS geometry,
|
||||
name, name_en, name_de,
|
||||
update_tags(tags, ll.wkb_geometry) AS tags,
|
||||
ST_Area(wp.geometry) AS area
|
||||
ST_Area(wp.geometry) AS area,
|
||||
is_intermittent
|
||||
FROM osm_water_polygon AS wp
|
||||
INNER JOIN lake_centerline ll ON wp.osm_id = ll.osm_id
|
||||
WHERE wp.name <> '' AND ST_IsValid(wp.geometry)
|
||||
|
|
|
@ -10,7 +10,8 @@ CREATE MATERIALIZED VIEW osm_water_point AS (
|
|||
wp.osm_id, ST_PointOnSurface(wp.geometry) AS geometry,
|
||||
wp.name, wp.name_en, wp.name_de,
|
||||
update_tags(wp.tags, ST_PointOnSurface(wp.geometry)) AS tags,
|
||||
ST_Area(wp.geometry) AS area
|
||||
ST_Area(wp.geometry) AS area,
|
||||
wp.is_intermittent
|
||||
FROM osm_water_polygon AS wp
|
||||
LEFT JOIN lake_centerline ll ON wp.osm_id = ll.osm_id
|
||||
WHERE ll.osm_id IS NULL AND wp.name <> ''
|
||||
|
|
|
@ -13,6 +13,10 @@ layer:
|
|||
At the moment only `lake` since no ocean parts are labelled. *Reserved for future use*.
|
||||
values:
|
||||
- lake
|
||||
intermittent:
|
||||
description: |
|
||||
Mark with `1` if it is an [intermittent](http://wiki.openstreetmap.org/wiki/Key:intermittent) lake.
|
||||
values: [0, 1]
|
||||
buffer_size: 256
|
||||
srs: +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over
|
||||
datasource:
|
||||
|
@ -20,7 +24,7 @@ layer:
|
|||
key_field: osm_id
|
||||
key_field_as_attribute: no
|
||||
srid: 900913
|
||||
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class FROM layer_water_name(!bbox!, z(!scale_denominator!))) AS t
|
||||
query: (SELECT osm_id, geometry, name, name_en, name_de, {name_languages}, class, intermittent FROM layer_water_name(!bbox!, z(!scale_denominator!))) AS t
|
||||
schema:
|
||||
- ./update_marine_point.sql
|
||||
- ./update_water_lakeline.sql
|
||||
|
|
|
@ -49,6 +49,9 @@ tables:
|
|||
type: hstore_tags
|
||||
- *tunnel
|
||||
- *bridge
|
||||
- name: is_intermittent
|
||||
key: intermittent
|
||||
type: bool
|
||||
mapping:
|
||||
waterway:
|
||||
- stream
|
||||
|
|
|
@ -8,60 +8,60 @@ $$ LANGUAGE SQL IMMUTABLE STRICT;
|
|||
|
||||
-- etldoc: ne_110m_rivers_lake_centerlines -> waterway_z3
|
||||
CREATE OR REPLACE VIEW waterway_z3 AS (
|
||||
SELECT geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, NULL::text AS name_de, NULL::hstore AS tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel
|
||||
SELECT geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, NULL::text AS name_de, NULL::hstore AS tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent
|
||||
FROM ne_110m_rivers_lake_centerlines
|
||||
WHERE featurecla = 'River'
|
||||
);
|
||||
|
||||
-- etldoc: ne_50m_rivers_lake_centerlines -> waterway_z4
|
||||
CREATE OR REPLACE VIEW waterway_z4 AS (
|
||||
SELECT geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, NULL::text AS name_de, NULL::hstore AS tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel
|
||||
SELECT geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, NULL::text AS name_de, NULL::hstore AS tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent
|
||||
FROM ne_50m_rivers_lake_centerlines
|
||||
WHERE featurecla = 'River'
|
||||
);
|
||||
|
||||
-- etldoc: ne_10m_rivers_lake_centerlines -> waterway_z6
|
||||
CREATE OR REPLACE VIEW waterway_z6 AS (
|
||||
SELECT geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, NULL::text AS name_de, NULL::hstore AS tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel
|
||||
SELECT geometry, 'river'::text AS class, NULL::text AS name, NULL::text AS name_en, NULL::text AS name_de, NULL::hstore AS tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent
|
||||
FROM ne_10m_rivers_lake_centerlines
|
||||
WHERE featurecla = 'River'
|
||||
);
|
||||
|
||||
-- etldoc: osm_important_waterway_linestring_gen3 -> waterway_z9
|
||||
CREATE OR REPLACE VIEW waterway_z9 AS (
|
||||
SELECT geometry, 'river'::text AS class, name, name_en, name_de, tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel
|
||||
SELECT geometry, 'river'::text AS class, name, name_en, name_de, tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent
|
||||
FROM osm_important_waterway_linestring_gen3
|
||||
);
|
||||
|
||||
-- etldoc: osm_important_waterway_linestring_gen2 -> waterway_z10
|
||||
CREATE OR REPLACE VIEW waterway_z10 AS (
|
||||
SELECT geometry, 'river'::text AS class, name, name_en, name_de, tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel
|
||||
SELECT geometry, 'river'::text AS class, name, name_en, name_de, tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent
|
||||
FROM osm_important_waterway_linestring_gen2
|
||||
);
|
||||
|
||||
-- etldoc:osm_important_waterway_linestring_gen1 -> waterway_z11
|
||||
CREATE OR REPLACE VIEW waterway_z11 AS (
|
||||
SELECT geometry, 'river'::text AS class, name, name_en, name_de, tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel
|
||||
SELECT geometry, 'river'::text AS class, name, name_en, name_de, tags, NULL::boolean AS is_bridge, NULL::boolean AS is_tunnel, NULL::boolean AS is_intermittent
|
||||
FROM osm_important_waterway_linestring_gen1
|
||||
);
|
||||
|
||||
-- etldoc: osm_waterway_linestring -> waterway_z12
|
||||
CREATE OR REPLACE VIEW waterway_z12 AS (
|
||||
SELECT geometry, waterway::text AS class, name, name_en, name_de, tags, is_bridge, is_tunnel
|
||||
SELECT geometry, waterway::text AS class, name, name_en, name_de, tags, is_bridge, is_tunnel, is_intermittent
|
||||
FROM osm_waterway_linestring
|
||||
WHERE waterway IN ('river', 'canal')
|
||||
);
|
||||
|
||||
-- etldoc: osm_waterway_linestring -> waterway_z13
|
||||
CREATE OR REPLACE VIEW waterway_z13 AS (
|
||||
SELECT geometry, waterway::text AS class, name, name_en, name_de, tags, is_bridge, is_tunnel
|
||||
SELECT geometry, waterway::text AS class, name, name_en, name_de, tags, is_bridge, is_tunnel, is_intermittent
|
||||
FROM osm_waterway_linestring
|
||||
WHERE waterway IN ('river', 'canal', 'stream', 'drain', 'ditch')
|
||||
);
|
||||
|
||||
-- etldoc: osm_waterway_linestring -> waterway_z14
|
||||
CREATE OR REPLACE VIEW waterway_z14 AS (
|
||||
SELECT geometry, waterway::text AS class, name, name_en, name_de, tags, is_bridge, is_tunnel
|
||||
SELECT geometry, waterway::text AS class, name, name_en, name_de, tags, is_bridge, is_tunnel, is_intermittent
|
||||
FROM osm_waterway_linestring
|
||||
);
|
||||
|
||||
|
@ -69,12 +69,13 @@ CREATE OR REPLACE VIEW waterway_z14 AS (
|
|||
-- etldoc: label="layer_waterway | <z3> z3 |<z4_5> z4-z5 |<z6_8> z6-8 | <z9> z9 |<z10> z10 |<z11> z11 |<z12> z12|<z13> z13|<z14> z14+" ];
|
||||
|
||||
CREATE OR REPLACE FUNCTION layer_waterway(bbox geometry, zoom_level int)
|
||||
RETURNS TABLE(geometry geometry, class text, name text, name_en text, name_de text, brunnel text, tags hstore) AS $$
|
||||
RETURNS TABLE(geometry geometry, class text, name text, name_en text, name_de text, brunnel text, intermittent int, tags hstore) AS $$
|
||||
SELECT geometry, class,
|
||||
NULLIF(name, '') AS name,
|
||||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
||||
waterway_brunnel(is_bridge, is_tunnel) AS brunnel,
|
||||
is_intermittent::int AS intermittent,
|
||||
tags
|
||||
FROM (
|
||||
-- etldoc: waterway_z3 -> layer_waterway:z3
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
layer:
|
||||
id: "waterway"
|
||||
description: |
|
||||
OpenStreetMap [waterways](http://wiki.openstreetmap.org/wiki/Waterways) for higher zoom levels
|
||||
OpenStreetMap [waterways](https://wiki.openstreetmap.org/wiki/Waterways) for higher zoom levels
|
||||
and Natural Earth rivers and lake centerlines for low zoom levels.
|
||||
Linestrings without a name or which are too short are filtered
|
||||
out at low zoom levels. Waterways do no not have a `subclass` field.
|
||||
|
@ -27,9 +27,13 @@ layer:
|
|||
values:
|
||||
- bridge
|
||||
- tunnel
|
||||
intermittent:
|
||||
description: |
|
||||
Mark with `1` if it is an [intermittent](http://wiki.openstreetmap.org/wiki/Key:intermittent) waterway.
|
||||
values: [0, 1]
|
||||
datasource:
|
||||
geometry_field: geometry
|
||||
query: (SELECT geometry, name, name_en, name_de, {name_languages}, class, brunnel FROM layer_waterway(!bbox!, z(!scale_denominator!))) AS t
|
||||
query: (SELECT geometry, name, name_en, name_de, {name_languages}, class, brunnel, intermittent FROM layer_waterway(!bbox!, z(!scale_denominator!))) AS t
|
||||
schema:
|
||||
- ./update_waterway_linestring.sql
|
||||
- ./update_important_waterway.sql
|
||||
|
|
|
@ -17,7 +17,7 @@ tileset:
|
|||
- layers/poi/poi.yaml
|
||||
- layers/aerodrome_label/aerodrome_label.yaml
|
||||
name: OpenMapTiles
|
||||
version: 3.9.0
|
||||
version: 3.10.0
|
||||
id: openmaptiles
|
||||
description: "A tileset showcasing all layers in OpenMapTiles. https://openmaptiles.org"
|
||||
attribution: '<a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a> <a href="https://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap contributors</a>'
|
||||
|
@ -34,6 +34,7 @@ tileset:
|
|||
- br # Breton, Latin
|
||||
- bs # Bosnian, Latin
|
||||
- ca # Catalan, Latin
|
||||
- co # Corsican, Latin
|
||||
- cs # Czech, Latin
|
||||
- cy # Welsh, Latin
|
||||
- da # Danish, Latin
|
||||
|
@ -43,6 +44,7 @@ tileset:
|
|||
- eo # Esperanto, Latin
|
||||
- es # Spanish, Latin
|
||||
- et # Estonian, Latin
|
||||
- eu # Basque, Latin
|
||||
- fi # Finnish, Latin
|
||||
- fr # French, Latin
|
||||
- fy # Western Frisian, Latin
|
||||
|
@ -52,6 +54,7 @@ tileset:
|
|||
- hr # Croatian, Latin
|
||||
- hu # Hungarian, Latin
|
||||
- hy # Armenian
|
||||
- id # Indonesian, Latin
|
||||
- is # Icelandic, Latin
|
||||
- it # Italian, Latin
|
||||
- ja # Japanese
|
||||
|
@ -71,6 +74,7 @@ tileset:
|
|||
- ml # Malayalam
|
||||
- nl # Dutch, Latin
|
||||
- "no" # Norwegian, Latin
|
||||
- oc # Occitan (post 1500), Latin
|
||||
- pl # Polish, Latin
|
||||
- pt # Portuguese, Latin
|
||||
- rm # Romansh, Latin
|
||||
|
|
|
@ -11,9 +11,9 @@ echo "# FREQ - $layerid group by : $classvars "
|
|||
for z in {0..15}
|
||||
do
|
||||
echo " "
|
||||
echo "## $layerid z$z - freq"
|
||||
echo "## $layerid z$z - freq"
|
||||
|
||||
SQL=$(docker run --rm -v $(pwd):/tileset openmaptiles/openmaptiles-tools generate-sqlquery layers/${layerid}/${layerid}.yaml $z )
|
||||
SQL=$(docker run --rm -v $(pwd):/tileset openmaptiles/openmaptiles-tools generate-sqlquery layers/${layerid}/${layerid}.yaml $z )
|
||||
|
||||
SQLCODE=$(cat <<-END
|
||||
select $classvars , count(*) as _count_ from
|
||||
|
@ -29,7 +29,7 @@ END
|
|||
#echo "\`\`\`"
|
||||
|
||||
docker-compose run --rm import-osm /usr/src/app/psql.sh -q -P pager=off -P border=2 -P footer=off -P null='(null)' -c "$SQLCODE" \
|
||||
| sed '1d;$d' | sed '$d' | sed 's/+--/|--/g' | sed 's/--+/--|/g'
|
||||
|
||||
| sed '1d;$d' | sed '$d' | sed 's/+--/|--/g' | sed 's/--+/--|/g'
|
||||
|
||||
done
|
||||
|
||||
|
|
|
@ -13,17 +13,17 @@ do
|
|||
echo " "
|
||||
echo "## $layerid z$z - $var "
|
||||
|
||||
SQL=$(docker run --rm -v $(pwd):/tileset openmaptiles/openmaptiles-tools generate-sqlquery layers/${layerid}/${layerid}.yaml $z )
|
||||
SQL=$(docker run --rm -v $(pwd):/tileset openmaptiles/openmaptiles-tools generate-sqlquery layers/${layerid}/${layerid}.yaml $z )
|
||||
|
||||
SQLCODE=$(cat <<-END
|
||||
SELECT
|
||||
SELECT
|
||||
count($var) as count
|
||||
,min($var) as min
|
||||
,max($var) as max
|
||||
,avg($var) as avg
|
||||
,stddev($var) as stddev
|
||||
,variance($var) as variance
|
||||
FROM
|
||||
,min($var) as min
|
||||
,max($var) as max
|
||||
,avg($var) as avg
|
||||
,stddev($var) as stddev
|
||||
,variance($var) as variance
|
||||
FROM
|
||||
( $SQL ) as t
|
||||
;
|
||||
END
|
||||
|
@ -35,6 +35,6 @@ END
|
|||
#echo "\`\`\`"
|
||||
|
||||
docker-compose run --rm import-osm /usr/src/app/psql.sh -q -P pager=off -P border=2 -P footer=off -P null='(null)' -c "$SQLCODE" \
|
||||
| sed '1d;$d' | sed '$d' | sed 's/+--/|--/g' | sed 's/--+/--|/g'
|
||||
|
||||
| sed '1d;$d' | sed '$d' | sed 's/+--/|--/g' | sed 's/--+/--|/g'
|
||||
|
||||
done
|
||||
|
|
|
@ -11,7 +11,7 @@ do
|
|||
echo " "
|
||||
echo "## $layerid z$z max length ($classvar)"
|
||||
|
||||
SQL=$(docker run --rm -v $(pwd):/tileset openmaptiles/openmaptiles-tools generate-sqlquery layers/${layerid}/${layerid}.yaml $z )
|
||||
SQL=$(docker run --rm -v $(pwd):/tileset openmaptiles/openmaptiles-tools generate-sqlquery layers/${layerid}/${layerid}.yaml $z )
|
||||
|
||||
SQLCODE=$(cat <<-END
|
||||
SELECT DISTINCT $classvar , length( $classvar ) AS _length_ from
|
||||
|
|
50
qa/run.sh
|
@ -7,7 +7,7 @@ set -o nounset
|
|||
# or make generate-qareports
|
||||
|
||||
# ---- freq ---------------------------------------------------------------
|
||||
|
||||
|
||||
mkdir -p ./build/qareports
|
||||
rm -f ./build/qareports/*.md
|
||||
|
||||
|
@ -26,26 +26,26 @@ rm -f ./build/qareports/*.md
|
|||
|
||||
./qa/layer_freq.sh landuse "class " > ./build/qareports/freq_landuse__class.md
|
||||
|
||||
./qa/layer_freq.sh park "class " > ./build/qareports/freq_park__class.md
|
||||
./qa/layer_freq.sh park "class " > ./build/qareports/freq_park__class.md
|
||||
|
||||
./qa/layer_freq.sh place "class " > ./build/qareports/freq_place__class.md
|
||||
./qa/layer_freq.sh place "class " > ./build/qareports/freq_place__class.md
|
||||
./qa/layer_freq.sh place "class,capital " > ./build/qareports/freq_place__class_capital.md
|
||||
./qa/layer_freq.sh place "capital " > ./build/qareports/freq_place__capital.md
|
||||
./qa/layer_freq.sh place "class,capital,rank " > ./build/qareports/freq_place__class_capital_rank.md
|
||||
./qa/layer_freq.sh place "rank " > ./build/qareports/freq_place__rank.md
|
||||
./qa/layer_freq.sh place "capital " > ./build/qareports/freq_place__capital.md
|
||||
./qa/layer_freq.sh place "class,capital,rank " > ./build/qareports/freq_place__class_capital_rank.md
|
||||
./qa/layer_freq.sh place "rank " > ./build/qareports/freq_place__rank.md
|
||||
|
||||
./qa/layer_freq.sh poi "class " > ./build/qareports/freq_poi__class.md
|
||||
./qa/layer_freq.sh poi "class " > ./build/qareports/freq_poi__class.md
|
||||
./qa/layer_freq.sh poi "subclass " > ./build/qareports/freq_poi__subclass.md
|
||||
./qa/layer_freq.sh poi "rank " > ./build/qareports/freq_poi__rank.md
|
||||
./qa/layer_freq.sh poi "class,subclass " > ./build/qareports/freq_poi__class_subclass.md
|
||||
./qa/layer_freq.sh poi "class,subclass,rank" > ./build/qareports/freq_poi__class_subclass_rank.md
|
||||
./qa/layer_freq.sh poi "rank " > ./build/qareports/freq_poi__rank.md
|
||||
./qa/layer_freq.sh poi "class,subclass " > ./build/qareports/freq_poi__class_subclass.md
|
||||
./qa/layer_freq.sh poi "class,subclass,rank" > ./build/qareports/freq_poi__class_subclass_rank.md
|
||||
./qa/layer_freq.sh poi "class,rank " > ./build/qareports/freq_poi__class_rank.md
|
||||
|
||||
./qa/layer_freq.sh transportation "class, oneway, ramp, brunnel, service" > ./build/qareports/freq_transportation__class_oneway_ramp_brunnel_service.md
|
||||
./qa/layer_freq.sh transportation "oneway, ramp, brunnel, service " > ./build/qareports/freq_transportation__oneway_ramp_brunnel_service.md
|
||||
./qa/layer_freq.sh transportation "class " > ./build/qareports/freq_transportation__class.md
|
||||
./qa/layer_freq.sh transportation "class, oneway, ramp, brunnel, service" > ./build/qareports/freq_transportation__class_oneway_ramp_brunnel_service.md
|
||||
./qa/layer_freq.sh transportation "oneway, ramp, brunnel, service " > ./build/qareports/freq_transportation__oneway_ramp_brunnel_service.md
|
||||
./qa/layer_freq.sh transportation "class " > ./build/qareports/freq_transportation__class.md
|
||||
|
||||
./qa/layer_freq.sh transportation_name "class " > ./build/qareports/freq_transportation_name__class.md
|
||||
./qa/layer_freq.sh transportation_name "class " > ./build/qareports/freq_transportation_name__class.md
|
||||
./qa/layer_freq.sh transportation_name "ref_length" > ./build/qareports/freq_transportation_name__ref_length.md
|
||||
|
||||
./qa/layer_freq.sh water "class " > ./build/qareports/freq_water__class.md
|
||||
|
@ -56,22 +56,22 @@ rm -f ./build/qareports/*.md
|
|||
|
||||
# ---- toplength -------------------------------------------
|
||||
|
||||
./qa/layer_toplength.sh housenumber "housenumber" > ./build/qareports/toplength_housenumber__housenumber.md
|
||||
./qa/layer_toplength.sh housenumber "housenumber" > ./build/qareports/toplength_housenumber__housenumber.md
|
||||
|
||||
./qa/layer_toplength.sh place "name" > ./build/qareports/toplength_place__name.md
|
||||
./qa/layer_toplength.sh place "name_en" > ./build/qareports/toplength_place__name_en.md
|
||||
./qa/layer_toplength.sh place "name" > ./build/qareports/toplength_place__name.md
|
||||
./qa/layer_toplength.sh place "name_en" > ./build/qareports/toplength_place__name_en.md
|
||||
|
||||
./qa/layer_toplength.sh poi "name" > ./build/qareports/toplength_poi__name.md
|
||||
./qa/layer_toplength.sh poi "name_en" > ./build/qareports/toplength_poi__name_en.md
|
||||
./qa/layer_toplength.sh poi "name" > ./build/qareports/toplength_poi__name.md
|
||||
./qa/layer_toplength.sh poi "name_en" > ./build/qareports/toplength_poi__name_en.md
|
||||
|
||||
./qa/layer_toplength.sh transportation_name "name" > ./build/qareports/toplength_transportation_name__name.md
|
||||
./qa/layer_toplength.sh transportation_name "ref" > ./build/qareports/toplength_transportation_name__ref.md
|
||||
###Todo: ./qa/layer_toplength.sh transportation_name "network" > ./build/qareports/toplength_transportation_name__network.md
|
||||
./qa/layer_toplength.sh transportation_name "name" > ./build/qareports/toplength_transportation_name__name.md
|
||||
./qa/layer_toplength.sh transportation_name "ref" > ./build/qareports/toplength_transportation_name__ref.md
|
||||
###Todo: ./qa/layer_toplength.sh transportation_name "network" > ./build/qareports/toplength_transportation_name__network.md
|
||||
|
||||
./qa/layer_toplength.sh water_name "name" > ./build/qareports/toplength_water_name__name.md
|
||||
./qa/layer_toplength.sh water_name "name_en" > ./build/qareports/toplength_water_name__name_en.md
|
||||
./qa/layer_toplength.sh water_name "name" > ./build/qareports/toplength_water_name__name.md
|
||||
./qa/layer_toplength.sh water_name "name_en" > ./build/qareports/toplength_water_name__name_en.md
|
||||
|
||||
./qa/layer_toplength.sh waterway "name" > ./build/qareports/toplength_waterway__name.md
|
||||
./qa/layer_toplength.sh waterway "name" > ./build/qareports/toplength_waterway__name.md
|
||||
|
||||
|
||||
# ---- numvar analyze -------------------------------------
|
||||
|
|
|
@ -167,21 +167,21 @@ fi
|
|||
echo " "
|
||||
echo "-------------------------------------------------------------------------------------"
|
||||
echo "====> : Remove old generated source files ( ./build/* ) ( if they exist ) "
|
||||
docker-compose run --rm openmaptiles-tools make clean
|
||||
make clean
|
||||
|
||||
echo " "
|
||||
echo "-------------------------------------------------------------------------------------"
|
||||
echo "====> : Code generating from the layer definitions ( ./build/mapping.yaml; ./build/tileset.sql )"
|
||||
echo " : The tool source code: https://github.com/openmaptiles/openmaptiles-tools "
|
||||
echo " : But we generate the tm2source, Imposm mappings and SQL functions from the layer definitions! "
|
||||
docker-compose run --rm openmaptiles-tools make
|
||||
make
|
||||
|
||||
echo " "
|
||||
echo "-------------------------------------------------------------------------------------"
|
||||
echo "====> : Start PostgreSQL service ; create PostgreSQL data volume "
|
||||
echo " : Source code: https://github.com/openmaptiles/postgis "
|
||||
echo " : Thank you: https://www.postgresql.org ! Thank you http://postgis.org !"
|
||||
docker-compose up -d postgres
|
||||
docker-compose up -d postgres
|
||||
|
||||
echo " "
|
||||
echo "-------------------------------------------------------------------------------------"
|
||||
|
@ -192,10 +192,10 @@ make forced-clean-sql
|
|||
|
||||
echo " "
|
||||
echo "-------------------------------------------------------------------------------------"
|
||||
echo "====> : Start importing water data from http://openstreetmapdata.com into PostgreSQL "
|
||||
echo "====> : Start importing water data from http://osmdata.openstreetmap.de/ into PostgreSQL "
|
||||
echo " : Source code: https://github.com/openmaptiles/import-water "
|
||||
echo " : Data license: http://openstreetmapdata.com/info/license "
|
||||
echo " : Thank you: http://openstreetmapdata.com/info/supporting "
|
||||
echo " : Data license: https://osmdata.openstreetmap.de/info/license.html "
|
||||
echo " : Thank you: https://osmdata.openstreetmap.de/info/ "
|
||||
docker-compose run --rm import-water
|
||||
|
||||
echo " "
|
||||
|
|