kopia lustrzana https://github.com/openmaptiles/openmaptiles
Import street and associatedStreet to get the houses (#284)
* Import street and associatedStreet to get the houses * Some artifcating on the associatedstreet and street member buildingspull/292/head
rodzic
57c5524063
commit
237278eb84
|
@ -14,10 +14,13 @@ $$ STRICT
|
|||
LANGUAGE plpgsql IMMUTABLE;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS osm_building_relation_building_idx ON osm_building_relation(building);
|
||||
--CREATE INDEX IF NOT EXISTS osm_building_associatedstreet_role_idx ON osm_building_associatedstreet(role);
|
||||
--CREATE INDEX IF NOT EXISTS osm_building_street_role_idx ON osm_building_street(role);
|
||||
|
||||
CREATE OR REPLACE VIEW osm_all_buildings AS (
|
||||
-- etldoc: osm_building_relation -> layer_building:z14_
|
||||
SELECT member AS osm_id,geometry,
|
||||
-- etldoc: osm_building_relation -> layer_building:z14_
|
||||
-- Buildings built from relations
|
||||
SELECT member AS osm_id,geometry,
|
||||
COALESCE(nullif(as_numeric(height),-1),nullif(as_numeric(buildingheight),-1)) as height,
|
||||
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,
|
||||
|
@ -25,7 +28,30 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||
FROM
|
||||
osm_building_relation WHERE building = ''
|
||||
UNION ALL
|
||||
-- etldoc: osm_building_polygon -> layer_building:z14_
|
||||
|
||||
-- etldoc: osm_building_associatedstreet -> layer_building:z14_
|
||||
-- Buildings in associatedstreet relations
|
||||
SELECT member AS osm_id,geometry,
|
||||
COALESCE(nullif(as_numeric(height),-1),nullif(as_numeric(buildingheight),-1)) as height,
|
||||
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
|
||||
FROM
|
||||
osm_building_associatedstreet WHERE role = 'house'
|
||||
UNION ALL
|
||||
-- etldoc: osm_building_street -> layer_building:z14_
|
||||
-- Buildings in street relations
|
||||
SELECT member AS osm_id,geometry,
|
||||
COALESCE(nullif(as_numeric(height),-1),nullif(as_numeric(buildingheight),-1)) as height,
|
||||
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
|
||||
FROM
|
||||
osm_building_street WHERE role = 'house'
|
||||
UNION ALL
|
||||
|
||||
-- etldoc: osm_building_polygon -> layer_building:z14_
|
||||
-- Buildings that are inner/outer
|
||||
SELECT osm_id,geometry,
|
||||
COALESCE(nullif(as_numeric(height),-1),nullif(as_numeric(buildingheight),-1)) as height,
|
||||
COALESCE(nullif(as_numeric(min_height),-1),nullif(as_numeric(buildingmin_height),-1)) as min_height,
|
||||
|
@ -34,9 +60,9 @@ CREATE OR REPLACE VIEW osm_all_buildings AS (
|
|||
FROM
|
||||
osm_building_polygon obp WHERE EXISTS (SELECT 1 FROM osm_building_multipolygon obm WHERE obp.osm_id = obm.osm_id)
|
||||
UNION ALL
|
||||
-- etldoc: osm_building_polygon -> layer_building:z14_
|
||||
-- etldoc: osm_building_polygon -> layer_building:z14_
|
||||
-- Standalone buildings
|
||||
SELECT osm_id,geometry,
|
||||
|
||||
COALESCE(nullif(as_numeric(height),-1),nullif(as_numeric(buildingheight),-1)) as height,
|
||||
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,
|
||||
|
|
|
@ -65,6 +65,182 @@ tables:
|
|||
building:part: ["no","none","No"]
|
||||
type: polygon
|
||||
|
||||
# etldoc: imposm3 -> osm_building_street
|
||||
building_street:
|
||||
fields:
|
||||
- name: osm_id
|
||||
type: id
|
||||
- name: geometry
|
||||
type: validated_geometry
|
||||
- name: area
|
||||
type: area
|
||||
- name: webmerc_area
|
||||
type: webmerc_area
|
||||
- name: building
|
||||
key: building
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildingpart
|
||||
key: building:part
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildingheight
|
||||
key: building:height
|
||||
type: string
|
||||
from_member: true
|
||||
- name: height
|
||||
key: height
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildingmin_height
|
||||
key: building:min_height
|
||||
type: string
|
||||
from_member: true
|
||||
- name: min_height
|
||||
key: min_height
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildinglevels
|
||||
key: building:levels
|
||||
type: string
|
||||
from_member: true
|
||||
- name: levels
|
||||
key: levels
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildingmin_level
|
||||
key: building:min_level
|
||||
type: string
|
||||
from_member: true
|
||||
- name: min_level
|
||||
key: min_level
|
||||
type: string
|
||||
from_member: true
|
||||
- name: relbuildingheight
|
||||
key: building:height
|
||||
type: string
|
||||
- name: relheight
|
||||
key: height
|
||||
type: string
|
||||
- name: relbuildingmin_height
|
||||
key: building:min_height
|
||||
type: string
|
||||
- name: relmin_height
|
||||
key: min_height
|
||||
type: string
|
||||
- name: relbuildinglevels
|
||||
key: building:levels
|
||||
type: string
|
||||
- name: rellevels
|
||||
key: levels
|
||||
type: string
|
||||
- name: relbuildingmin_level
|
||||
key: building:min_level
|
||||
type: string
|
||||
- name: relmin_level
|
||||
key: min_level
|
||||
type: string
|
||||
- name: member
|
||||
type: member_id
|
||||
- name: index
|
||||
type: member_index
|
||||
- name: role
|
||||
type: member_role
|
||||
from_member: true
|
||||
- name: type
|
||||
type: member_type
|
||||
mapping:
|
||||
type: [street]
|
||||
type: relation_member
|
||||
|
||||
# etldoc: imposm3 -> osm_building_associatedstreet
|
||||
building_associatedstreet:
|
||||
fields:
|
||||
- name: osm_id
|
||||
type: id
|
||||
- name: geometry
|
||||
type: validated_geometry
|
||||
- name: area
|
||||
type: area
|
||||
- name: webmerc_area
|
||||
type: webmerc_area
|
||||
- name: building
|
||||
key: building
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildingpart
|
||||
key: building:part
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildingheight
|
||||
key: building:height
|
||||
type: string
|
||||
from_member: true
|
||||
- name: height
|
||||
key: height
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildingmin_height
|
||||
key: building:min_height
|
||||
type: string
|
||||
from_member: true
|
||||
- name: min_height
|
||||
key: min_height
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildinglevels
|
||||
key: building:levels
|
||||
type: string
|
||||
from_member: true
|
||||
- name: levels
|
||||
key: levels
|
||||
type: string
|
||||
from_member: true
|
||||
- name: buildingmin_level
|
||||
key: building:min_level
|
||||
type: string
|
||||
from_member: true
|
||||
- name: min_level
|
||||
key: min_level
|
||||
type: string
|
||||
from_member: true
|
||||
- name: relbuildingheight
|
||||
key: building:height
|
||||
type: string
|
||||
- name: relheight
|
||||
key: height
|
||||
type: string
|
||||
- name: relbuildingmin_height
|
||||
key: building:min_height
|
||||
type: string
|
||||
- name: relmin_height
|
||||
key: min_height
|
||||
type: string
|
||||
- name: relbuildinglevels
|
||||
key: building:levels
|
||||
type: string
|
||||
- name: rellevels
|
||||
key: levels
|
||||
type: string
|
||||
- name: relbuildingmin_level
|
||||
key: building:min_level
|
||||
type: string
|
||||
- name: relmin_level
|
||||
key: min_level
|
||||
type: string
|
||||
- name: member
|
||||
type: member_id
|
||||
- name: index
|
||||
type: member_index
|
||||
- name: role
|
||||
type: member_role
|
||||
from_member: true
|
||||
- name: type
|
||||
type: member_type
|
||||
mapping:
|
||||
type: [associatedStreet]
|
||||
type: relation_member
|
||||
|
||||
# etldoc: imposm3 -> osm_building_relation
|
||||
building_relation:
|
||||
fields:
|
||||
|
|
Ładowanie…
Reference in New Issue