Multilinguality (#279)

Improve multilinguality: names in 57 languages, name:latin, name:nonlatin, name_int. Fixes #211 #252 #80.

See #279 for more info.
This commit is contained in:
Jiri Kozel
2017-06-12 17:53:47 +02:00
committed by GitHub
parent 8ff5d10e8b
commit 51bc8fad35
33 changed files with 182 additions and 114 deletions

View File

@@ -3,10 +3,11 @@
-- etldoc: label="layer_poi | <z14_> z14+" ] ;
CREATE OR REPLACE FUNCTION layer_poi(bbox geometry, zoom_level integer, pixel_width numeric)
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, class text, subclass text, "rank" int) AS $$
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, class text, subclass text, "rank" int) AS $$
SELECT osm_id, geometry, NULLIF(name, '') AS name,
COALESCE(NULLIF(name_en, ''), name) AS name_en,
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
tags,
poi_class(subclass, mapping_key) AS class, subclass,
row_number() OVER (
PARTITION BY LabelGrid(geometry, 100 * pixel_width)

View File

@@ -315,6 +315,8 @@ tables:
- name: name_de
key: name:de
type: string
- name: tags
type: hstore_tags
- name: subclass
type: mapping_value
- name: mapping_key
@@ -354,6 +356,8 @@ tables:
- name: name_de
key: name:de
type: string
- name: tags
type: hstore_tags
- name: subclass
type: mapping_value
- name: mapping_key

5
layers/poi/name.sql Normal file
View File

@@ -0,0 +1,5 @@
DO $$
BEGIN
update osm_poi_point SET tags = slice_language_tags(tags) || get_basic_names(tags, geometry);
update osm_poi_polygon SET tags = slice_language_tags(tags) || get_basic_names(tags, geometry);
END $$;

View File

@@ -34,9 +34,10 @@ layer:
datasource:
geometry_field: geometry
srid: 900913
query: (SELECT geometry, name, name_en, name_de, class, subclass, rank FROM layer_poi(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t
query: (SELECT geometry, name, name_en, name_de, {name_languages}, class, subclass, rank FROM layer_poi(!bbox!, z(!scale_denominator!), !pixel_width!)) AS t
schema:
- ./poi_update.sql
- ./name.sql
- ./poi_polygon_update.sql
- ./class.sql
- ./layer.sql