Les terrains de basket et de rugby sont désormais rendus eux aussi...

http://tile.openstreetmap.fr/?lon=2.44176&lat=48.83262&zoom=17&layers=B00000

Pour le tennis, le tag surface est pris en compte:

http://tile.openstreetmap.fr/?lon=2.24749&lat=48.84697&zoom=17&layers=B00000
(Roland Garros)
http://tile.openstreetmap.fr/?lon=2.24749&lat=48.84697&zoom=17&layers=B00000
(Wimbledon)

J'ai corrigé les principaux défaut signalés en applicant une
simplification au polygone et en tenant compte de sa "rectangularité".
Si un polygone n'est pas assez rectangulaire ou de forme trop
irrégulière, aucun rendu spécial n'est fait.

Pour les curieux, j'ai tout commité sur github:
https://github.com/cquest/osmfr-cartocss/commits/master

La requête SQL ressemble à ça:

select *, abs(a12-a23) as angle_diff, (a12+a23+90)/2 as angle from
(select way, sport, surface, way_area, st_npoints(way2) as nb, osm_id,
ST_Distance(st_pointn(way2,1),st_pointn(way2,2)) as d12,
ST_Distance(st_pointn(way2,3),st_pointn(way2,2)) as
d23,ST_Distance(st_pointn(way2,1),st_pointn(way2,3)) as d13,
degrees(st_azimuth(st_pointn(way2,1),st_pointn(way2,2))) as a12,
degrees(st_azimuth(st_pointn(way2,2),st_pointn(way2,3))) as a23 from
(select *, ST_ExteriorRing(ST_SimplifyPreserveTopology(way,100)) as
way2 from planet_osm_polygon where sport in
('tennis','soccer','basketball','rugby_union','rugby_league') AND way
&& !bbox!) as simplified) as simplified2) as sports

Y'a sûrement plus efficace et robuste !

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à