On Fri, Mar 13, 2009 at 10:34:14AM +0100, [email protected] 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                  [email protected]             +49-171-2280134
        Those who would give up a little freedom to get a little 
          security shall soon have neither - Benjamin Franklin

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an