Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
hackfest2009:hackfest2009 [2009/08/23 19:50] 82.247.183.72 |
hackfest2009:hackfest2009 [2009/09/11 12:02] (Version actuelle) 88.173.105.122 |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Hackfest 2009 ====== | ====== Hackfest 2009 ====== | ||
Au programme : http://thomas.enix.org/Hackfest2009 | Au programme : http://thomas.enix.org/Hackfest2009 | ||
+ | |||
+ | * IRC OSM : #osm-fr sur irc.oftc.net | ||
+ | |||
+ | ===== Autres pages ===== | ||
+ | * [[ToDo]] | ||
+ | * [[Projections]] | ||
+ | * [[Hébergement]] | ||
+ | * [[Mapnik]] et [[OGR]] | ||
+ | * [[Trucs]] | ||
+ | * [[RevueDePresse]] | ||
===== Installation et configuration de PostgreSQL/PostGIS ===== | ===== Installation et configuration de PostgreSQL/PostGIS ===== | ||
Ligne 8: | Ligne 18: | ||
* Paquet installé pour une interface graphique d'administration de PostgreSQL: pgadmin3 | * Paquet installé pour une interface graphique d'administration de PostgreSQL: pgadmin3 | ||
* Configuration du mot de passe de l'utilisateur postgres du serveur de base de données (pas l'utilisateur Unix !), voir https://help.ubuntu.com/community/PostgreSQL#Basic%20Server%20Setup | * Configuration du mot de passe de l'utilisateur postgres du serveur de base de données (pas l'utilisateur Unix !), voir https://help.ubuntu.com/community/PostgreSQL#Basic%20Server%20Setup | ||
+ | |||
+ | |||
Ligne 33: | Ligne 45: | ||
* Création d'une table: ''create table communes (name varchar);''. | * Création d'une table: ''create table communes (name varchar);''. | ||
* Création du champ géographique: ''select addgeometrycolumn('communes', 'geom', 4002, 'POLYGON', 2);'' | * Création du champ géographique: ''select addgeometrycolumn('communes', 'geom', 4002, 'POLYGON', 2);'' | ||
- | * Insertion d'une donnée: ''insert into communes (name, geom) values ('Ville1', st_geomfromtext('POLYGON((10 10, 15 20, 30 40, 10 10))', 4002));'' | + | * Insertion d'une donnée: ''insert into communes (name, geom) values ('Ville1', st_geomfromtext('POLYGON( (10 10, 15 20, 30 40, 10 10) )', 4002));'' |
* Calcul de la surface: | * Calcul de la surface: | ||
<file> | <file> | ||
Ligne 55: | Ligne 67: | ||
Ville1 | POLYGON((10 10,15 20,30 40,10 10)) | Ville1 | POLYGON((10 10,15 20,30 40,10 10)) | ||
</file> | </file> | ||
+ | |||
+ | ==== Référence ==== | ||
+ | * http://postgis.refractions.net/documentation/manual-1.4/ch02.html#id2532099 | ||
===== OpenStreetMap dans PostGIS ===== | ===== OpenStreetMap dans PostGIS ===== | ||
Ligne 67: | Ligne 82: | ||
* API Postgis : http://postgis.refractions.net/documentation/manual-1.4/ch07.html | * API Postgis : http://postgis.refractions.net/documentation/manual-1.4/ch07.html | ||
* Stats des communes dans OSM : http://www.mail-archive.com/talk-fr@openstreetmap.org/msg12151.html | * Stats des communes dans OSM : http://www.mail-archive.com/talk-fr@openstreetmap.org/msg12151.html | ||
+ | * Declarations proj4 usuelles : http://www.remotesensing.org/geotiff/proj_list/ | ||
+ | * Shapefiles : http://en.wikipedia.org/wiki/Shapefile | ||
+ | |||
===== OpenStreetMap ===== | ===== OpenStreetMap ===== | ||
Ligne 73: | Ligne 91: | ||
* dump de la base : http://download.geofabrik.de/osm/ et en particulier http://download.geofabrik.de/osm/europe/france.osm.bz2 | * dump de la base : http://download.geofabrik.de/osm/ et en particulier http://download.geofabrik.de/osm/europe/france.osm.bz2 | ||
+ | * Requête pour calculer la bounding box d'une commune, en supposant que les limites administratives de celles-ci existent dans OSM : ''select st_astext(st_transform(st_setsrid(st_box2d(way), 900913), 4002)) from planet_osm_polygon where name='Toulouse';'' | ||
===== Installation Ubuntu par PXE ===== | ===== Installation Ubuntu par PXE ===== | ||
Ligne 83: | Ligne 101: | ||
* Lancer le serveur PXE: ''sudo pxed eth0 /la/ou/le/netboot.tar.gz/est/decompresse pxelinux.0'' | * Lancer le serveur PXE: ''sudo pxed eth0 /la/ou/le/netboot.tar.gz/est/decompresse pxelinux.0'' | ||
* Démarrer la machine à installer. Si elle boote sur le réseau, ça marche, sinon, utiliser http://rom-o-matic.net/ pour générer une image ISO/USB avec le nécessaire pour faire du PXE | * Démarrer la machine à installer. Si elle boote sur le réseau, ça marche, sinon, utiliser http://rom-o-matic.net/ pour générer une image ISO/USB avec le nécessaire pour faire du PXE | ||
+ | |||
+ | |||
+ | |||
Ligne 104: | Ligne 125: | ||
$ export PYTHONPATH="/home/thomas/sys/lib/python2.6/site-packages" | $ export PYTHONPATH="/home/thomas/sys/lib/python2.6/site-packages" | ||
- | $ export PYTHONPATH="/home/thomas/sys/lib/python2.6/site-packages" | + | $ export LD_LIBRARY_PATH="/home/thomas/sys/lib" |
$ python | $ python | ||
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) | Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) | ||
Ligne 187: | Ligne 209: | ||
$ rmdir coastlines | $ rmdir coastlines | ||
$ tar xjf ~/osm/shoreline_300.tar.bz2 -C world_boundaries | $ tar xjf ~/osm/shoreline_300.tar.bz2 -C world_boundaries | ||
+ | |||
+ | <file> | ||
+ | --- generate_image.py (revision 17214) | ||
+ | +++ generate_image.py (working copy) | ||
+ | @@ -14,6 +14,7 @@ | ||
+ | # pixel size so will appear smaller on a large image. | ||
+ | |||
+ | from mapnik import * | ||
+ | +import cairo | ||
+ | import sys, os | ||
+ | |||
+ | if __name__ == "__main__": | ||
+ | @@ -26,12 +27,13 @@ | ||
+ | #--------------------------------------------------- | ||
+ | # Change this to the bounding box you want | ||
+ | # | ||
+ | - ll = (-6.5, 49.5, 2.1, 59) | ||
+ | + #ll = (-6.5, 49.5, 2.1, 59) | ||
+ | + ll = (-1.0901, 44.4883, -1.0637, 44.4778) | ||
+ | #--------------------------------------------------- | ||
+ | |||
+ | - z = 10 | ||
+ | - imgx = 500 * z | ||
+ | - imgy = 1000 * z | ||
+ | + z = 17 | ||
+ | + imgx = 500 | ||
+ | + imgy = 1000 | ||
+ | |||
+ | m = Map(imgx,imgy) | ||
+ | load_map(m,mapfile) | ||
+ | @@ -44,3 +46,8 @@ | ||
+ | render(m, im) | ||
+ | view = im.view(0,0,imgx,imgy) # x,y,width,height | ||
+ | view.save(map_uri,'png') | ||
+ | + | ||
+ | + # SVG | ||
+ | + surface = cairo.SVGSurface('image.svg', m.width, m.height) | ||
+ | + render(m, surface) | ||
+ | + | ||
+ | </file> | ||
$ ./generate_image.py | $ ./generate_image.py | ||
- | $ ghumb image.png | + | $ gthumb image.png |
+ | $ firefox image.svg | ||
+ | |||
+ | |||
+ | ===== Préfixes pour les voies urbaines ===== | ||
+ | |||
+ | Liste des déterminants : | ||
+ | |||
+ | * de | ||
+ | * du | ||
+ | * de la | ||
+ | * des | ||
+ | * d' | ||
+ | |||
+ | Liste des appellations particulières de rues : | ||
+ | |||
+ | * Allée f. | ||
+ | * Avenue f. | ||
+ | * Boulevard m. | ||
+ | * Carrefour m. | ||
+ | * Chaussée f. | ||
+ | * Chemin m. | ||
+ | * Cité f. | ||
+ | * Clos m. | ||
+ | * Côte f. | ||
+ | * Cour f. | ||
+ | * Cours m. | ||
+ | * Degré m. | ||
+ | * Esplanade f. | ||
+ | * Impasse f. | ||
+ | * Liaison f. | ||
+ | * Mail m. | ||
+ | * Montée f. | ||
+ | * Passage m. | ||
+ | * Place f. | ||
+ | * Placette f. | ||
+ | * Pont m. | ||
+ | * Promenade f. | ||
+ | * Quai m. | ||
+ | * Résidence f. | ||
+ | * Rond-Point m. | ||
+ | * Rang m. | ||
+ | * Route f. | ||
+ | * Ruelle f. | ||
+ | * Square m. | ||
+ | * Traboule f. | ||
+ | * Traverse f. | ||
+ | * Venelle f. | ||
+ | * Voie f. | ||
+ | |||
+ | Mais aussi : | ||
+ | |||
+ | * Berge | ||
+ | * Cul-de-Sac | ||
+ | * Escalier | ||
+ | * Parvis | ||
+ | * Passerelle | ||
+ | * Giratoire | ||
+ | * Jardin | ||
+ | |||
+ | Les dénominations suivantes s'appliquent à des voies qui ne sont pas des rues, soit parce qu'elles ne se trouvent pas en zone urbaine, soit qu'elles en sont complètement isolées. Ces voies ne remplissent donc qu'une fonction de circulation exclusivement : | ||
+ | |||
+ | * Autoroute f. | ||
+ | * Bretelle | ||
+ | * Sente f. | ||
+ | * Sentier m. | ||
+ | |||
+ | ===== Cairo ===== | ||
+ | |||
+ | * Tutorial Python/Cairo: http://www.tortall.net/mu/wiki/CairoTutorial | ||