kopia lustrzana https://github.com/osm2vectortiles/osm2vectortiles
Merge 2f1b1992e1
into ae8836f1ac
commit
7ca3331abc
|
@ -264,13 +264,13 @@ Layer:
|
|||
srid: ''
|
||||
table: |-
|
||||
(
|
||||
SELECT osm_ids2mbid(osm_id, true) AS osm_id, geometry, building_is_underground(underground) AS underground
|
||||
SELECT osm_ids2mbid(osm_id, true) AS osm_id, geometry, infer_height(height, levels) as height, infer_min_height(min_height, min_level) as min_height, building_is_underground(underground) AS underground
|
||||
FROM (
|
||||
SELECT osm_id, geometry, underground
|
||||
SELECT osm_id, geometry, underground, height, min_height, levels, min_level
|
||||
FROM building_z13
|
||||
WHERE z(!scale_denominator!) = 13
|
||||
UNION ALL
|
||||
SELECT osm_id, geometry, underground
|
||||
SELECT osm_id, geometry, underground, height, min_height, levels, min_level
|
||||
FROM building_z14
|
||||
WHERE z(!scale_denominator!) = 14
|
||||
) AS building
|
||||
|
@ -282,6 +282,8 @@ Layer:
|
|||
description: ''
|
||||
fields:
|
||||
underground: "Text. Whether building is underground. One of: 'true', 'false'"
|
||||
height: "Integer. Height of building from its base."
|
||||
min_height: "Integer. Height of building's base."
|
||||
properties:
|
||||
"buffer-size": 2
|
||||
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
|
||||
|
|
|
@ -296,6 +296,18 @@ tables:
|
|||
- name: underground
|
||||
key: building:levels:underground
|
||||
type: integer
|
||||
- name: height
|
||||
key: height
|
||||
type: integer
|
||||
- name: min_height
|
||||
key: min_height
|
||||
type: integer
|
||||
- name: levels
|
||||
key: building:levels
|
||||
type: integer
|
||||
- name: min_level
|
||||
key: building:min_level
|
||||
type: integer
|
||||
- name: timestamp
|
||||
type: pbf_timestamp
|
||||
mapping:
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
CREATE OR REPLACE VIEW building_z13 AS
|
||||
SELECT id AS osm_id, underground, geometry
|
||||
SELECT id AS osm_id, underground, height, min_height, levels, min_level, geometry
|
||||
FROM osm_building_polygon_gen0;
|
||||
|
||||
CREATE OR REPLACE VIEW building_z14 AS
|
||||
SELECT id AS osm_id, underground, geometry
|
||||
SELECT id AS osm_id, underground, height, min_height, levels, min_level, geometry
|
||||
FROM osm_building_polygon;
|
||||
|
||||
CREATE OR REPLACE VIEW building_layer AS (
|
||||
|
@ -12,6 +12,32 @@ CREATE OR REPLACE VIEW building_layer AS (
|
|||
SELECT osm_id FROM building_z14
|
||||
);
|
||||
|
||||
CREATE OR REPLACE FUNCTION infer_height(height INTEGER, levels INTEGER) RETURNS VARCHAR
|
||||
AS $$
|
||||
BEGIN
|
||||
IF height IS NOT NULL THEN
|
||||
RETURN height;
|
||||
ELSIF levels IS NOT NULL THEN
|
||||
RETURN (levels + 1) * 3;
|
||||
ELSE
|
||||
RETURN 6;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql IMMUTABLE;
|
||||
|
||||
CREATE OR REPLACE FUNCTION infer_min_height(min_height INTEGER, min_level INTEGER) RETURNS VARCHAR
|
||||
AS $$
|
||||
BEGIN
|
||||
IF min_height IS NOT NULL THEN
|
||||
RETURN min_height;
|
||||
ELSIF min_level IS NOT NULL THEN
|
||||
RETURN min_level * 3;
|
||||
ELSE
|
||||
RETURN 0;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql IMMUTABLE;
|
||||
|
||||
CREATE OR REPLACE FUNCTION building_is_underground(level INTEGER) RETURNS VARCHAR
|
||||
AS $$
|
||||
BEGIN
|
||||
|
|
Ładowanie…
Reference in New Issue