Mise à jour : j'ai publié une v2.0. Mais lisez d'abord ce post.

Voici les outils que j'ai utilisés :

  1. curl pour récupérer le fichier XML des stations (mais vous pouvez simplement utiliser votre navigateur web)
  2. xsltproc pour transformer les données en script SQL. Sous Windows, il vous faut xsltproc.exe, libxml2.dll, libxslt.dll, libexslt.dll, iconv.dll, zlib1.dll, à piocher dans les divers zips.
  3. sqlite3 pour créer la base de POI. Téléchargez les "Precompiled binaries For Windows" ici.

Pour transformer les données des stations, j'utilise une transformation XSLT :

<?xmlversion="1.0"encoding="UTF-8"?>
<!--
stations2mm.xslt
Copyright © 2007 Olivier Mengué  http://o.mengue.free.fr/
Maemo Mapper POI format: http://eko.one.pl/index.php?page=Nokia770_software#Details
-->
<xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:outputmethod="text"encoding="UTF-8" />
<xsl:strip-spaceelements="*"/>
<xsl:templatematch="/markers">-- Script SQLite pour construire une base POI des stations Vélib pour Maemo
-- Mapper http://gnuite.com:8080/nokia770/maemo-mapper/ (Nokia 770, N800).
-- See http://eko.one.pl/index.php?page=Nokia770_software#Details
--
-- Créé avec stations2mm.xslt (http://o.mengue.free.fr/)
--
-- Pour céer le fichier:
--  sqlite3 -init velib.sql poi.db
PRAGMA encoding = "UTF-8";
CREATE TABLE IF NOT EXISTS poi (poi_id INTEGER PRIMARY KEY, lat REAL, lon REAL, label TEXT, desc TEXT, cat_id INTEGER);
CREATE TABLE IF NOT EXISTS category (cat_id INTEGER PRIMARY KEY, label TEXT, desc TEXT, enabled INTEGER);
-- Placez 'Velib.jpg' dans un sous-répertoire 'poi' de votre dépôt de cartes
INSERT INTO category (label, desc, enabled) VALUES ('Velib', NULL, 1);
<!--
Ignore les stations dont les coordonnées ne sont pas définies
  lat=27.1409733745, lng=-3.40456062425
-->
<xsl:apply-templatesselect="marker[@lat!='27.1409733745']"/>
</xsl:template>
<xsl:templatematch="marker">INSERT INTO poi (lat, lon, label, desc, cat_id) VALUES (<xsl:value-ofselect="@lat"/>, <xsl:value-ofselect="@lng"/>, "VELIB <xsl:value-ofselect="@number"/>", "<xsl:value-ofselect="@address"/>", 1);
</xsl:template>
</xsl:stylesheet>

Voici les commandes à lancer :

$ curl http://www.velib.paris.fr/service/carto > stations-velib.xml
$ xsltproc -o stations-velib.sql stations2mm.xslt stations-velib.xml
$ sqlite3 -init stations-velib.sql velib-poi.db
Loading resources from stations-velib.sql
SQLite version 3.4.1
Enter ".help" for instructions
sqlite> .q

Il suffit alors de transférer sur le N800 la base de données velib-poi.db. Dans le menu Settings..., onglet POI, sélectionnez enfin le chemin de votre POI database.

Pour afficher une icône spécifique comme symbole de station, placez une petite image JPEG nommée Velib.jpg (même nom que la catégorie) dans un sous-répertoire poi du répertoire de cache des fonds de carte.

Mise à jour : j'ai publié une v2.0.