[OSM-dev-fr] OSM Nominatim + MaxSpeed

2012-04-05 Par sujet Payet Louis
Re Bonjour,

Merci pour ceux qui ont répondu à mon message sur talk-fr (Nicolas,Damouns
Étienne,Rodolphe,Frédéric) 
http://lists.openstreetmap.org/pipermail/talk-fr/2012-April/042333.html

Mon projet concerne La Nouvelle-Calédonie (dans un premier temps), et dans
un second temps d'autres pays

Pour être plus précis, je pense qu'on peux facilement ajouter une table (ou
un champ) avec ID des rues + maxspeed dans postgresql.
Les données existent dans la base OSM... Il faut par contre que j'étudie
la structure de nominatim (DB).

Une requête http://nominatim.openstreetmap.org/reverse?format=xmllat=-22
2648630lon=166.4694287zoom=18addressdetails=1 

donne :
reversegeocode timestamp=Thu, 05 Apr 12 11:48:29 +0100 attribution=Data
Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.
querystring=format=xmllat=-22.2648630lon=166
4694287zoom=18addressdetails=1
result place_id=95022773 osm_type=way osm_id=104632110 lat=-22
2648782958183 lon=166.46920622592923 Bis, Rue de la Gazelle, Magenta,
Magenta Aérodrome, Nouméa, Province Sud, 98800, Nouvelle-Calédonie/result
addressparts
house_number23 Bis/house_number
roadRue de la Gazelle/road
suburbMagenta/suburb
city_districtMagenta Aérodrome/city_district
cityNouméa/city
countyProvince Sud/county
postcode98800/postcode
countryNouvelle-Calédonie/country
country_codenc/country_code
/addressparts
/reversegeocode

Il faudrait juste ajouter le maxpseed50/maxpseed dans le addressparts
() /addressparts

Il faudrait modifier le fichier setup.php pour importer cette valeur, ainsi
que le fichier reverse.php pour chercher le maxspeed si l'ID (place_id ou
osm_id) est définit
Ensuite il faudrait faire une update du fichier reverse.php pour afficher
celle-ci.



@Etienne: 
Pour le fait que ce ne soit pas défini, si on doit faire toutes les rues de
la Nouvelle-Calédonie et définir cette valeur on va le faire, (ou le faire
faire) ^_^
La plupart des rues sont à 50, on possède quelques zones à 30 (4 ou 5 rues),
et les voies rapides (qui ne sont pas super nombreuse de 70 à 120).

@Rodolphe: 
Ta proposition pour debian m'intéresse.
Utilise-tu nominatim ?

Pour le coup des locales, j'ai essayé de passé pgsql en en.utf8 par défaut,
mais j'avais des erreurs (en boucle) après la procédure de CREAT/INSERT du
début:
Done 1 in 792 @ 0.001263 per second - Rank 21 ETA (seconds): 25649712.00
index_placex: UPDATE failed: ERREUR: requires UTF8 database encoding
CONTEXT: PL/pgSQL function make_standard_name line 5 at affectation 

Ensuite j'ai utilisé une debian EN (sans modifier les locales) et l'erreur
est la suivante (toujours en boucle) :
PL/pgSQL function placex_update line 290 at FOR over SELECT rows
index_placex: UPDATE failed: ERROR: upper bound of FOR loop cannot be null
CONTEXT: PL/pgSQL function get_osm_rel_members line 6 at FOR with integer
loop variable

J'ai fait mes tests sur une VM (2 coeurs, 1,5Gb de RAM) et me suis préparé
des commandes pour accélérer mon install : 
sed -i 's/shared_buffers = 24MB/shared_buffers = 200MB/g' /etc/postgresql/9
1/main/postgresql.conf
sed -i 's/#fsync = on/fsync = off/g' /etc/postgresql/9.1/main/postgresql
conf
sed -i 's/#autovacuum = on/autovacuum = off/g' /etc/postgresql/9
1/main/postgresql.conf
sed -i 's/gazetteer -C 12000/gazetteer -C 500/g'
/usr/src/Nominatim/utils/setup.php
echo -e ?php\ndefine('CONST_Postgresql_Version','9.1');\ndefine(
CONST_Osm2pgsql_Binary','/usr/bin/osm2pgsql');\ndefine('CONST_Osmosis_Binary
,'/usr/bin/osmosis');\ndefine('CONST_Website_BaseURL','http://192.168.1
16/nominatim/');\n?  /usr/src/Nominatim/settings/local.php


Si vous avez des idées, elles sont les bienvenues, et je précise une fois
de plus que je peux rémunérer une personne pour cette update, ce qui va me
faire gagner un temps précieux.

Louis___
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] OSM Nominatim + MaxSpeed

2012-04-05 Par sujet Nicolas Dumoulin
Le jeudi 5 avril 2012 22:24:17 Payet Louis a écrit :
 Re Bonjour,
 
 Merci pour ceux qui ont répondu à mon message sur talk-fr (Nicolas,Damouns
 Étienne,Rodolphe,Frédéric) 
 http://lists.openstreetmap.org/pipermail/talk-fr/2012-April/042333.html
 
 Mon projet concerne La Nouvelle-Calédonie (dans un premier temps), et dans
 un second temps d'autres pays
 
 Pour être plus précis, je pense qu'on peux facilement ajouter une table (ou
 un champ) avec ID des rues + maxspeed dans postgresql.
 Les données existent dans la base OSM... Il faut par contre que j'étudie
 la structure de nominatim (DB).

Sauf erreur de ma part, nominatim interroge directement une base postgis en 
utilisant le modèle osm2pgsql. les attributs maxspeed sont donc déjà dans la 
base, mais nominatim ne les retourne pas. AMHA, les services en lignes 
nominatim n'ont pas pour objet de répondre à des requêtes sur les attributs, 
il n'est donc pas envisageable de demander à ces services d'obtenir le 
maxspeed.
Il faut donc interroger la base avec les identifiants résultants de la requête 
pour obtenir les maxspeed associés. Si ces requêtes sont faites avec un 
service externe, cela peut être effectivement long. La solution serait donc 
d'installer une instance de nominatim en modifiant les données retournées par 
les requêtes :
http://wiki.openstreetmap.org/wiki/Nominatim/Installation

Bien cordialement,

-- 
Nicolas Dumoulin
http://wiki.openstreetmap.org/wiki/User:NicolasDumoulin

___
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr


Re: [OSM-dev-fr] OSM Nominatim + MaxSpeed

2012-04-05 Par sujet Pieren
2012/4/5 Nicolas Dumoulin nicolas_openstreetmap@dumoulin63.net:

 Sauf erreur de ma part, nominatim interroge directement une base postgis en
 utilisant le modèle osm2pgsql. les attributs maxspeed sont donc déjà dans la
 base, mais nominatim ne les retourne pas.

Normalement, on utilise osm2pgsql avec un output gazetteer. Le
schéma est différent de celui utilisé pour Mapnik.
Le tag maxspeed devrait être absent (si j'en crois le code source
http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/output-gazetteer.c).
Mais ça doit être simple à ajouter.

Pieren

___
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr