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
signature.asc
Description: Digital signature
_______________________________________________ Talk-de mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk-de

