Le samedi 20 juin 2009 17:37, Yann Coupin a écrit : > Bon j'avais commencé à jouer avec mapnik et du coup j'ai voulu tester > la création d'une table spécifique pour une surcouche, ça aide pas mal > en fait, dans ton cas ça risque d'être encore plus intéressant. Voilà > mon "code" SQL:
Avec un mix de ton exemple, de la doc, et l'aide de François, j'arrive à faire marcher le tout. Le rajout lors des minutes diff est négligeable par contre le résultat sur du temps réél ne l'est pas ! (En utilisant les géométries pré-simplifiées) $ time ./nik2img.py -m communes.xml -i png -o c1.png -s 1000,1000 -e -5,41,9,51.5 real 0m7.226s (sans) time ./nik2img.py -m communes2.xml -i png -o c2.png -s 1000,1000 -e -5,41,9,51.5 real 1m49.012s On divise par 15 le temps de calcul pour la france entière, et ça se confirme, c'est en gros le rapport qui existe entre les tailles de données à lire. Le rendu temps réél avec postgres c'est pour beaucoup un problème d'IO PS a titre d'archives : ALTER TABLE planet_osm_polygon drop column simplified_way; ALTER TABLE planet_osm_polygon add column simplified_way GEOMETRY; -- Add an index to the simplified column CREATE INDEX planet_osm_polygon_simplified_way ON planet_osm_polygon USING gist (simplified_way); CREATE OR REPLACE FUNCTION simplify() RETURNS trigger AS $simplify$ BEGIN IF NEW.boundary = 'administrative' THEN UPDATE "planet_osm_polygon" SET simplified_way=st_simplify(way,200) WHERE osm_id = NEW.osm_id; RAISE NOTICE 'mise a jour'; RETURN NEW; END IF; RAISE NOTICE 'rien'; RETURN NEW; END; $simplify$ LANGUAGE plpgsql; DROP TRIGGER simplify ON planet_osm_polygon; CREATE TRIGGER simplify AFTER INSERT ON planet_osm_polygon FOR EACH ROW EXECUTE PROCEDURE simplify(); /* On notera que le trigger n'est activé que lors des inserts et pas des updates (ce que osm2pgsql ne fait de toute façon pas) car sinon, on part dans une boucle infinie car la fonction fait elle-même un update qui déclenche le trigger */ -- sly _______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr