[OSM-talk-fr] Base de données pour le développement

Philippe Verdy verdy_p at wanadoo.fr
Mar 3 Fév 01:20:07 UTC 2015


Note quand même qu'une fois que tu as uploadé les objets en création sur le
serveur de test, ils ont un nouvel id qui n'a rien à voir avec ceux de la
base originale.

Ce qui veut dire que tu ne pourras pas facilement réexporter les données du
serveur de test (que tu auras modifiées et complétées) par la manip inverse
puisqu'il te faudra faire des fusions entre les objets importés sur la base
de test, ceux que tu as modifiés ou créés dessus (avec des numéros de
version différents) et ceux qui sont restés sur la base normale (et ont pu
aussi être modifiés depuis)... à moins que tu gardes les IDs et versions
originales dans des tags spécifiques comme "ref:osm:id=*" et
"ref:osm:version=*" (pour l'import vers la base de test) ou
"ref:devosm:id=*" et "ref:devosm:version=*" (pour l'import inverse), ce qui
pourrait te faciliter le travail de fusion ultérieur puisque tout sera
marqué par défaut en création et créera donc des doublons partout, même si
la validateur de JOSM peut t'aider à dédoublonner les noeuds et chemins
superposés, mais ce ne sera pas évident car il y a aussi des tas d'objets
distincts dans la base OSM qui sont aussi superposés où la fursion n'a pas
encore été faite...)

C'est pourquoi toutes les modifs que tu voudras tester sur la base de test
devraient être sauvegardées à part de l'import initial, dans les fichiers
OSM que tu pourras aussi transformer de la même façon (passage en création:
id négatifs,  pas de version, statut "modified", tags "ref:devosm:id=*" et
"ref:devosm:version=*" pour faciliter la fusion) et ne pas avoir à
fusionner la totalité.


Le 3 février 2015 02:06, Philippe Verdy <verdy_p at wanadoo.fr> a écrit :

> quand tu as chargé des objets depuis OSM, ils comportent un numéro de
> version qui n'existe pas sur le serveur de test où ils doivent non pas être
> modifiés ou supprimés mais créés.
>
> Pour les mettre en création, il faut d'abord ôter leur numéro de version
> (directement dans le code XML), et mettre leurs ID en valeur négative
> (change simplement de signe), et les marquer en "modified" pour qu'ils
> puissent être envoyés comme s'ils venaient d'être créés. .
>
> Une petite manip à faire à coup de "grep" ou avec un éditeur supportant
> les recherches/substitutions d'expressions régulières (garde l'original,
> sauve dans un nouveau fichier OSM, tu peux facilement te planter dans la
> transformation et JOSM te dira que ton fichier est invalide ou t'affichera
> n'importe quoi).
>
> (tu peux aussi ajouter un tag "source:test=sources incomplètes : données
> importées depuis OpenStreetMap.org" si tu veux éviter de pister toutes les
> sources stockées dans les historiques des objets voire depuis quelques mois
> uniquement dans les changesets)
>
> Ceci fait tu as des données fraîches à mettre sur le serveur de test.
>
> Le 2 février 2015 23:12, Vincent Frison <vincent.frison at gmail.com> a
> écrit :
>
> Merci Philippe pour ta réponse.
>>
>> Je reste cependant surpris du fait que la base de test soit par défaut
>> vide ou quasiment. Après qu'elle soit lente, instable et non durable ça
>> c'est tout à fait normal mais je ne vois pas vraiment pourquoi il n'y
>> aurait pas par défaut une copie des données de la vrai base..
>>
>> Bon en suivant ton idée j'ai donc essayé de la remplir un peu avec JOSM.
>> J'ai changé l'URL à http://api06.dev.openstreetmap.org/api, j'ai
>> téléchargé une petite zone de test et fait quelques modifs mais dès que
>> j'essaye d'uploader j'ai ce message d'erreur :
>>
>> Le serveur 'http://api06.dev.openstreetmap.org/api/0.6/' ne reconnaît
>> pas un objet
>> que vous essayez de lire, mettre à jour ou supprimer. Soit cet objet
>> n’existe pas sur le serveur, soit vous utilisez une adresse web qui n’est
>> pas valide pour y accéder.
>> Veuillez vérifier l’adresse du serveur '
>> http://api06.dev.openstreetmap.org/api/0.6/'.
>>
>> En gros il peut pas faire de PUT sur une ressource qui n'existe pas.. ou
>> alors il faudrait faire comprendre à JOSM que ce sont des nouveaux éléments
>> à créer (et non pas des éléments existant à mettre à jour) ?
>>
>> Sinon mon programme devrait fonctionner de la manière suivante :
>> 1) Pour chaque immeuble de la base à importer je calcule l'osmId du
>> building correspondant à la position géographique de l'immeuble (grâce à
>> une base PostGIS en local contenant les données OSM de la France).
>> 2) Si un ID de building est trouvé je télécharge le way depuis l'API
>> d'OSM et si le way ne contient pas d'informations sur la hauteur ou sur le
>> nombre d'étages alors je les renseigne.
>> 3) Je met à jour l'élément dans la foulée, il y a donc très peu de chance
>> d'avoir des accès concurrents puisque le délai est de quelques
>> millisecondes.
>>
>> La base de données concerne environ 40 000 immeubles répartie sur toute
>> la France mais de toute façon je comptais bien lancer un nouveau sujet pour
>> détailler et demander des conseils techniques voir légaux. Pour l'instant
>> mon problème est juste sur la base de données de test...
>>
>> ++ Vincent
>>
>>
>> Le 2 février 2015 19:27, Philippe Verdy <verdy_p at wanadoo.fr> a écrit :
>>
>> Dans ce cas tu télécharges une zone pour tes tests depuis la base
>>> principale vers un fichier OSM, tu changes l'adresse de l'API ou tu
>>> utilises une autre session JOSM pour le faire. Et tu envoies les données de
>>> cette zone de test sur la base de test.
>>> Après tu peux faire ce que tu veux...
>>> Cette base de test ne garantie pas la conservation à long terme des
>>> données il me semble (elle n'est pas taillée pour). Elle peut être purgée
>>> sans prévenir si elle devient trop volumineuse dans sa config limitée).
>>> Elle ne garantie pas non plus de bonnes performances (temporairement elle
>>> peut être sollicitée par d'autres tests concurrents).
>>>
>>> Elle peut aussi contenir des erreurs insérées volontairement pour tester
>>> le comportement de certains logiciels.
>>>
>>> S'il y a des données qui te gène dans ta zone de test (et qui ne sont
>>> assez anciennes) tu peux les virer, mais choisis plutôt une zone vierge si
>>> tu peux.
>>>
>>> Aucune idée de l'échelle de ton test : toute une grande ville comme
>>> Paris, Lyon, Marseille, Lille ou Bordeaux ? il y a des tas de trucs
>>> spécifiques dans ces villes.
>>>
>>> Après, à toi de faire tes tests de rendu.
>>>
>>> Garde tes fichiers OSM que tu souhaites valider en test si ensuite tu
>>> comptes les envoyer sur la base principale, mais attends toi à un travail
>>> supplémentaire de fusion... et de résolutions des conflits si les données
>>> OSM que tu as importées initialement en test ont été touchées sur la base
>>> principale pendant que tu les modifiais pour tes tests.
>>>
>>> En aucun cas tu ne doit réimporter directement les données brutes
>>> extraites de la base de test vers la base principale (à cause des erreurs
>>> volontaires et autres tests concurrents qui peuvent même avoir des données
>>> arbitraires qui ne correspondent à rien dans la réalité).
>>>
>>> Donc il vaut mieux que tu crées des fichiers OSM de petite taille pour
>>> rendre gérable le travail de fusion et résolution des conflits sinon tu y
>>> passeras un temps fou et certains pourrais faire des reverts de tes modifs
>>> partielles suspendues à de nombreuses résolutions de conflits (et tu
>>> devrais alors recommencer en tenant compte des conflits générés par les
>>> reverts de tout ce que tu as partiellement envoyés mais qui ne sont plus là
>>> pour continuer).
>>>
>>> Il est possible aussi de créer ta propre base de test (c'est
>>> open-source) et tu n'y seras pas gêné par les autres. A toi de la tailler
>>> selon tes besoins.
>>>
>>>
>>>
>>> Le 2 février 2015 19:08, Vincent Frison <vincent.frison at gmail.com> a
>>> écrit :
>>>
>>>> Bonjour à tous,
>>>>
>>>> Je suis un nouvel inscrit à la liste et j'aimerais contribuer ce
>>>> fabuleux projet qu'est OSM :)
>>>>
>>>> J'ai pour projet de faire un programme pour importer dans OSM une base
>>>> de données d'immeubles (PSS) afin de rajouter les informations de hauteur
>>>> (ou au moins le nombre d'étages) sur les bâtiments, ceci afin d'avoir des
>>>> rendus 3D plus réalistes (voir la liste des projets relatifs à la 3D:
>>>> http://wiki.openstreetmap.org/wiki/3D_Development).
>>>>
>>>> J'ai commencé à faire le programme mais je me heurte à un problème tout
>>>> bête : il est fortement conseillé, si ça n'est obligatoire, d'utiliser les
>>>> serveurs de développement afin de faire ses tests, ce qui est plutôt
>>>> logique. On peut donc par ex utiliser celui ci :
>>>> http://master.apis.dev.openstreetmap.org (équivalent à
>>>> http://api06.dev.openstreetmap.org).
>>>>
>>>> Mais le problème est qu'il n'y a visiblement aucune donnée dans la BD !
>>>> Quelque soit l'ID du node je me retrouve toujours avec une erreur 404 ("Not
>>>> found") dès que je fait un GET, alors que ce sont des IDs tout à fait
>>>> valides sur le serveur principale.
>>>>
>>>> D'ailleurs en utilisant la fonctionnalité "Query feature" de la carte,
>>>> si on clique sur n'importe quel objet on a une erreur du type "Désolé,
>>>> chemin #116602263 n’a pas pu être trouvé."
>>>>
>>>> Mes craintes se sont confirmées en voyant sur la page
>>>> http://wiki.openstreetmap.org/wiki/Sandbox_for_editing cette phrase :
>>>> "...but the database may be empty or populated with only some test
>>>> data, and non of them are currently hooked into a rendering stack, so you
>>>> wont see your data change on a map".
>>>>
>>>> Mais s'il n'y a pas d’éléments dans la base de données de tests,
>>>> comment on teste ? :)
>>>>
>>>> Merci d'avance pour votre aide,
>>>>
>>>> Vincent.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Talk-fr mailing list
>>>> Talk-fr at openstreetmap.org
>>>> https://lists.openstreetmap.org/listinfo/talk-fr
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Talk-fr mailing list
>>> Talk-fr at openstreetmap.org
>>> https://lists.openstreetmap.org/listinfo/talk-fr
>>>
>>>
>>
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/talk-fr/attachments/20150203/44d885da/attachment.html>


Plus d'informations sur la liste de diffusion Talk-fr