Le Mercredi 14 Septembre 2011 10:26:14 Ab_fab, vous avez écrit :
> Merci Nicolas pour cette (encore) bonne idée,
> 
> Le genre de carte que l'on ne trouve nulle part, qui rendrait probablement
> service à pas mal de monde au quotidien ...
> ... bref, de quoi faire parler d'un projet comme OSM !
> 
> Ton script agrège les communes adjacentes qui ont le même code postal, pour
> ne montrer que la délimitation extérieure du CP ?

Voilà, tout à fait.
Voilà en PJ mon script avec les deux couches mapnik et leur bête requête.
Ce script utilise une petite bibliothèque python qui me facilite grandement 
l'utilisation de mapnik (ça se voit dans le script :-) ) :
https://code.launchpad.net/~nicolas-dumoulin/+junk/mapnik-easymap

Je peux tenter de générer toute la France …

-- 
Nicolas Dumoulin
http://wiki.openstreetmap.org/wiki/User:NicolasDumoulin
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, os
from easymap.easymap2 import *
from generate_tiles2 import render_tiles

if __name__ == "__main__":
  ll = (2.8,45.513,3.431,45.912)
  z = 10
  imgx = 542 * z
  imgy = 360 * z
  tiles = False
  tiles = True

  db=DB()
  if tiles:
    m = Map(256,256, ll, bgColor='transparent')
  else:
    m = Map(imgx,imgy,bgColor='#D9DADB',lonlat=ll)
    
  m.addPGLayer('cpborder', "(select st_union(way) as way from planet_osm_polygon where \"addr:postcode\" is not null group by \"addr:postcode\") as roads", [line('red',2)])
  m.addPGLayer('cptext', "(select way,\"addr:postcode\" as name from planet_osm_polygon where \"addr:postcode\" is not null) as roads", [text(13,'red','white',4)])

  if tiles:
    mapfile='tiles_overlay.xml'
    mapnik2.save_map(m.getMap(),mapfile)
    render_tiles(ll, mapfile, 'tiles/',12,13)
  else:
    m.zoomToBBox()
    m.toPNG("cp.png")
  
  

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

Répondre à