Lebih

Satu label untuk jalan dua jalur (osm, qgis, postgis)

Satu label untuk jalan dua jalur (osm, qgis, postgis)


Saya memberi label osm-lines-layer (PostGIS) saya dengan simbol untuk jalan utama dan jalan raya. Sementara simbol untuk jalan utama ditempatkan dengan baik - dengan jarak yang cukup antara masing-masing - jalan raya dua lajur diberi label dengan satu label per lajur (seperti yang Anda lihat pada gambar).

Apakah mungkin, untuk mengatur sesuatu seperti radius dari setiap label, tidak ada label lain dari jenis yang sama yang dapat ditempatkan? Atau bisakah saya katakan saja: beri label satu lajur dari jalan dua lajur?

Saya menggunakan qgis. OSM-Data diimpor ke PostGIS dengan osm2pgsql.

EDIT: Tangkapan layar baru ini menunjukkan lebih detail:


Untuk memberi label hanya satu jalur dari jalan dua jalur, saya menggunakan ekspresi:

angle_at_vertex($geometry,1) <= 180

dan menggunakannya sebagai filter. Ini berfungsi karena di OSM setiap jalur ditarik ke arahnya.

Dalam contoh di bawah ini saya menggunakan ekspresiangle_at_vertex($geometri,1)sebagai label dan pada gambar kedua ekspresinyaangle_at_vertex($geometry,1) <= 180sebagai penyaring.

Sebelum:

Setelah:

Pengaturan:


Saya tidak tahu skema tabel OSM, tetapi Anda meminta kueri seperti ini:

HAPUS DARI label WHERE label_id IN ( SELECT label_id_2 FROM ( SELECT a.label_id AS label_id_1, b.label_id AS label_id_2 FROM labels AS a, labels AS b WHERE STDWithin(a.the_geom,b.the_geom, 0.001) dan a.street = b .street dan a.label_id != b.label_id ) )

Ini mungkin berhasil tetapi akan lebih baik jika Anda memiliki id untuk label yang sama untuk arah yang berbeda, dan kueri ini akan berfungsi 100%:

HAPUS DARI label WHERE label_id IN ( SELECT label_id_2 FROM ( SELECT a.label_id AS label_id_1 , b.label_id AS label_id_2 FROM labels AS a, labels AS b WHERE a.same_road_label_id = b.same_road_label_id; ) )

Tonton videonya: Մ6 ճանապարհի Ալավերդու հատվածում շինարարներն արդեն սկսել են աշխատել