Support lake labels

feature/lakelines
lukasmartinelli 2016-08-27 23:11:49 +02:00
rodzic ad6a8d4378
commit fd5f45ec75
3 zmienionych plików z 28 dodań i 4 usunięć

Wyświetl plik

@ -1,12 +1,15 @@
FROM mdillon/postgis:9.4
FROM osm2vectortiles/postgis
ENV IMPORT_DATA_DIR=/data/import \
NATURAL_EARTH_DB=/data/import/natural_earth_vector.sqlite
NATURAL_EARTH_DB=/data/import/natural_earth_vector.sqlite \
LAKELINES_GEOJSON=/data/import/lake_centerline.geojson
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
unzip \
gdal-bin \
sqlite3 \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p $IMPORT_DATA_DIR \
@ -24,6 +27,8 @@ RUN wget --quiet http://naciscdn.org/naturalearth/packages/natural_earth_vector.
&& rm natural_earth_vector.sqlite.zip \
&& ./usr/src/app/clean-natural-earth.sh
RUN wget --quiet -L -P "$IMPORT_DATA_DIR" https://github.com/lukasmartinelli/osm-lakelines/releases/download/v0.9/lake_centerline.geojson
COPY . /usr/src/app
WORKDIR /usr/src/app

Wyświetl plik

@ -33,4 +33,9 @@ function import_labels() {
import_geojson "$COUNTRIES_GEOJSON" "custom_countries"
}
function import_lakelines() {
import_geojson "$LAKELINES_GEOJSON" "custom_lakeline"
}
import_labels
import_lakelines

Wyświetl plik

@ -1,12 +1,26 @@
CREATE OR REPLACE FUNCTION imposm_id_to_osm_id (imposm_id BIGINT, is_polygon BOOLEAN) RETURNS BIGINT AS $$
BEGIN
RETURN CASE
WHEN (imposm_id >= 0 ) THEN imposm_id
WHEN (NOT is_polygon) AND (imposm_id >= -1e17 ) AND (imposm_id < 0 ) THEN abs(imposm_id)
WHEN ( is_polygon) AND (imposm_id >= -1e17 ) AND (imposm_id < 0 ) THEN abs(imposm_id)
WHEN (NOT is_polygon) AND (imposm_id < -1e17 ) THEN imposm_id +1e17
WHEN ( is_polygon) AND (imposm_id < -1e17 ) THEN imposm_id +1e17
ELSE 0
END;
END;
$$ LANGUAGE plpgsql IMMUTABLE;
DROP TABLE IF EXISTS osm_water_point CASCADE;
CREATE TABLE osm_water_point AS
SELECT id,
topoint(geometry) AS geometry,
COALESCE(ll.wkb_geometry, topoint(wp.geometry)) AS geometry,
timestamp,
name, name_fr, name_en, name_de,
name_es, name_ru, name_zh,
area
FROM osm_water_polygon;
FROM osm_water_polygon AS wp
LEFT JOIN custom_lakeline ll ON imposm_id_to_osm_id(wp.id, true) = ll.osm_id;
CREATE INDEX ON osm_water_point USING gist (geometry);
CREATE INDEX ON osm_water_point