Fixes #1156 Fixes #810 Fixes #1228 This PR replaces `osmborder`, which is no longer maintained, with `imposm` mappings and SQL code to generate borders. Key features that were moved into the imposm/SQL layer: 1. Grouping by `osm_id` and aggregating by lowest `admin_level` value so that there's only one copy of ways that are members of multiple relations. 2. Filtering out of point features in boundary relations (typically `admin_centre` and `label` roles). 3. Move disputed boundary detection logic into SQL. This will increase the database size slightly because of the limits of what imposm can do, as some of the filtering is done in the SQL layer after importing, rather than being done in `osmborder`.
74 lines
1.7 KiB
YAML
74 lines
1.7 KiB
YAML
generalized_tables:
|
|
# etldoc: osm_border_linestring -> osm_border_disp_linestring
|
|
border_disp_linestring:
|
|
source: border_linestring
|
|
sql_filter: ST_GeometryType(geometry) = 'ST_LineString' AND (disputed OR dispute OR border_status = 'disputed' OR disputed_by <> '') AND admin_level = 2
|
|
|
|
tables:
|
|
# etldoc: imposm3 -> osm_border_linestring
|
|
border_linestring:
|
|
type: relation_member
|
|
filters:
|
|
require:
|
|
admin_level: [__any__]
|
|
boundary: [administrative]
|
|
columns:
|
|
- name: relation_id
|
|
type: id
|
|
- name: osm_id
|
|
type: id
|
|
from_member: true
|
|
- name: member
|
|
type: member_id
|
|
- name: type
|
|
type: member_type
|
|
- name: geometry
|
|
type: geometry
|
|
- key: name
|
|
name: name
|
|
type: string
|
|
# Used for disputed boundary, e.g. "Line of actual control"
|
|
from_member: true
|
|
- key: admin_level
|
|
name: admin_level
|
|
type: integer
|
|
- key: claimed_by
|
|
name: claimed_by
|
|
type: string
|
|
- key: disputed_by
|
|
name: disputed_by
|
|
type: string
|
|
from_member: true
|
|
- key: dispute
|
|
name: dispute
|
|
type: bool
|
|
from_member: true
|
|
- key: disputed
|
|
name: disputed
|
|
type: bool
|
|
from_member: true
|
|
- key: border_status
|
|
name: border_status
|
|
type: string
|
|
from_member: true
|
|
- key: maritime
|
|
name: maritime
|
|
type: bool
|
|
from_member: true
|
|
- key: boundary_type
|
|
name: boundary_type
|
|
type: string
|
|
from_member: true
|
|
- key: natural
|
|
name: natural
|
|
type: string
|
|
from_member: true
|
|
relation_types: [boundary]
|
|
mapping:
|
|
boundary:
|
|
- administrative
|
|
border_status:
|
|
- dispute
|
|
boundary_type:
|
|
- maritime
|