[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