[Talk-de] Qualitaetssicherung - Kreisverkehr anyone?
Florian Lohoff
flo at rfc822.org
Fr Mär 13 09:47:59 UTC 2009
On Fri, Mar 13, 2009 at 10:34:14AM +0100, marcus.wolschon at googlemail.com wrote:
> Das musst du wohl selber machen.
> Zunächst brauchst du dafür aber Polygone der Länger in denen
> Linksverkehr
> herscht.
>
> Die Orientierung des Geschlossenen Polygons "Kreisverkehr" kriegst du über
> das Kreuzprodukt raus. Schau mal auf der Routing-Liste, da hatte ich einen
> Thread dazu.
> In dem Thread hatte ich mich am Ende dann doch entschieden auch in
> Traveling Salesman die Orientierung von Kreisverkehren nicht zu
> hinterfragen und als korrekt für das jeweilige Land anzunehmen.
Ich bin mittlerweile so unterwegs:
select wid, ST_AsText(ST_Centroid(geom)),
ST_IsSimple(geom) as issimple,
ST_IsClosed(geom) as isclosed,
ST_IsRing(geom) as isring,
ST_Equals(ST_forceRHR(geom), geom)
from (
select wid, ST_MakeLine(geom) as geom
from (
select wn.way_id as wid, n.geom as geom
from nodes n, borders b, way_nodes wn, way_tags wt
where ST_Within(n.geom, b.geom)
and b.name = 'Regierungsbezirk Detmold'
and wn.node_id = n.id
and wt.way_id = wn.way_id
and wt.k = 'junction'
and wt.v = 'roundabout'
order by wn.sequence_id
) wnodes
group by wid
) rblines;
Der trick ist (vermeindlich) das ST_forceRHR das polygon immer rechtsherum
ausrichtet. Ich vermute aber das ST_Equals da noch nicht passt da egal
wierum das polygon ist es natuerlich deckungsgleich ist - ich denke da
finde ich aber was im postgis repertoire ...
Output fuer die Gemeinde Langenberg ist dann in etwa so:
wid | st_astext | issimple | isclosed | isring | st_equals
----------+------------------------------------------+----------+----------+--------+-----------
24048697 | POINT(8.32025352333589 51.7648243388919) | t | t | t | t
24218903 | POINT(8.3233865887714 51.7504322740593) | t | t | t | t
Da sind also beide in ordnung ... Das ganze laeuft schon nen bischen
laenger in der Datenbank aber das wird schon ...
Flo
--
Florian Lohoff flo at rfc822.org +49-171-2280134
Those who would give up a little freedom to get a little
security shall soon have neither - Benjamin Franklin
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : signature.asc
Dateityp : application/pgp-signature
Dateigröße : 189 bytes
Beschreibung: Digital signature
URL : <http://lists.openstreetmap.org/pipermail/talk-de/attachments/20090313/48e48487/attachment.sig>
Mehr Informationen über die Mailingliste Talk-de