kopia lustrzana https://github.com/osm2vectortiles/osm2vectortiles
Merge 2f1b1992e1
into ae8836f1ac
commit
7ca3331abc
|
@ -264,13 +264,13 @@ Layer:
|
||||||
srid: ''
|
srid: ''
|
||||||
table: |-
|
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 (
|
FROM (
|
||||||
SELECT osm_id, geometry, underground
|
SELECT osm_id, geometry, underground, height, min_height, levels, min_level
|
||||||
FROM building_z13
|
FROM building_z13
|
||||||
WHERE z(!scale_denominator!) = 13
|
WHERE z(!scale_denominator!) = 13
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT osm_id, geometry, underground
|
SELECT osm_id, geometry, underground, height, min_height, levels, min_level
|
||||||
FROM building_z14
|
FROM building_z14
|
||||||
WHERE z(!scale_denominator!) = 14
|
WHERE z(!scale_denominator!) = 14
|
||||||
) AS building
|
) AS building
|
||||||
|
@ -282,6 +282,8 @@ Layer:
|
||||||
description: ''
|
description: ''
|
||||||
fields:
|
fields:
|
||||||
underground: "Text. Whether building is underground. One of: 'true', 'false'"
|
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:
|
properties:
|
||||||
"buffer-size": 2
|
"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
|
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
|
- name: underground
|
||||||
key: building:levels:underground
|
key: building:levels:underground
|
||||||
type: integer
|
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
|
- name: timestamp
|
||||||
type: pbf_timestamp
|
type: pbf_timestamp
|
||||||
mapping:
|
mapping:
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
CREATE OR REPLACE VIEW building_z13 AS
|
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;
|
FROM osm_building_polygon_gen0;
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW building_z14 AS
|
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;
|
FROM osm_building_polygon;
|
||||||
|
|
||||||
CREATE OR REPLACE VIEW building_layer AS (
|
CREATE OR REPLACE VIEW building_layer AS (
|
||||||
|
@ -12,6 +12,32 @@ CREATE OR REPLACE VIEW building_layer AS (
|
||||||
SELECT osm_id FROM building_z14
|
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
|
CREATE OR REPLACE FUNCTION building_is_underground(level INTEGER) RETURNS VARCHAR
|
||||||
AS $$
|
AS $$
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
Ładowanie…
Reference in New Issue