Forum openmoko-fr.org

Forum de la communauté francophone autour du projet OpenMoko

Vous n'êtes pas identifié.

Annonce

Bienvenue sur ce forum.

Face à un afflux de spammers, les inscriptions ont été désactivée.
Si vous souhaitez vous inscrire, il faudra en faire la demande auprès du webmaster (voir la section "Contact" sur le Blog).

#1 09-07-2010 12:08:23

crl
Moko
Lieu: Monthey (Suisse)
Date d'inscription: 08-06-2010
Messages: 14

Geocaching script

Bonjours, à tous.

Voici le résultat de quelques expérimentations dans le domaine du geocaching. Ces expérimentations sont basées sur :
- Tangogps
- Rick Richardson's Linux tools for geocaching

Le but principal est d'automatiser l'ajout par lots, de geocache dans Tangogps. Le but secondaire est de permettre la consultation offline des pages html correspondantes.

Code:

#!/bin/bash

#search place definition
    name=bergen #dest name
    lon=60.390709    #longitude
    lat=5.326867 #latitude

#search param
    max=5    #number of geocache
    dest=geocach #dest folder
    filename=$name"-"$lon"-"$lat #search result filename

#show place 
    #geo-firefox -a google -z 14 $lon $lat

#search nearest cache (return tabsep file and download html)
    geo-nearest -D1 -n$max -otabsep -H $dest $lon $lat | tee $dest/$filename.tabsep 

#tabsep to TangoGPS SQLlite 
    geo-2tangogps -D1 -s -S -itabsep $dest/$filename.tabsep |tee $dest/$filename.tangosql

#insert sql into Tangogps poi.db
    sqlite3 ~/.tangogps/poi.db < $dest/$filename.tangosql

#creat map for html page 
    #geo-map -a 21 -z 14 -o $dest/$filename.jpg $lon $lat 
    #.. did not work yet...
    #.. this image can be added into html index

#create geocaches html index page
    cd $dest
    rm index.html
    echo "    <header>" | tee -a index.html
    echo "    </header>" | tee -a index.html
    echo "    <body>" | tee -a index.html
    echo "    <h1>Geocaching index</h1>" | tee -a index.html
    for i in $(ls GC*.html); do
        echo "        <h3><a href=\"$i\">$i</a></h3>" | tee -a index.html
    done
    echo  "    </body>" | tee -a index.html
    cd -

Les coordonnées et autre critère de la recherche sont écrits au début du fichier. (ligne 4-11)

Le script lance une recherche sur le site geocaching.com. Il récupère les caches à proximité de la coordonnée de départ. Le résultat de la recherche est placé dans un fichier "tabsep". Parallèlement, pour chaque geocache, il télécharge la page html correspondante, pour une utilisation offline. (ligne 17)

Le fichier "tabsep" est converti en SQL (ligne 20 ), puis ajouté à la base de données de Tangogps. (ligne 23)

Ensuite une page d'index est sommairement crée a partir de la liste des pages html. Cette page est destinée à être ajoutée dans les favoris du navigateur.  Ligne (29-39)

Les recherches peuvent être réalisées sur une machine locale et transférée sur le freerunner, ou probablement directement depuis le freerunner. (à tester) Pour transférer le résultat de la recherche sur le freerunner, il faut copier le fichier  ~/.tangogsp/pio.db ainsi que le contenu du répertoire de destination ($dest)

Améliorations future possible:
- passage d'arguments en ligne de commande.
- enregistrement des résultats de la recherche dans des sous-dossiers selon le nom de la destination. (/$dest/$name/filename.tabseb).
- un fichier d'index général et un sous fichier d'index pour chaque recherche.
- affichage du résultat de la recherche dans une image (geo-map) et ajout de cette image dans la page d'index de la recherche html. (ligne 26)
- détermination des coordonnées selon le nom de la destination.

Rey Cyril

Hors ligne

 

#2 09-07-2010 19:38:46

Toub
Addicted-Moko
Date d'inscription: 17-07-2009
Messages: 106

Re: Geocaching script

Cool!

Améliorations future possible:
- intégration à SHR via Navit ou TangoGPS au plus vite!


Freerunner A7 - SHR unstable sur µSD (06/09/2009 full + upgrades)

Hors ligne

 

#3 09-07-2010 23:22:38

crl
Moko
Lieu: Monthey (Suisse)
Date d'inscription: 08-06-2010
Messages: 14

Re: Geocaching script

Toub a écrit:

Cool!

Améliorations future possible:
- intégration à SHR via Navit ou TangoGPS au plus vite!

Il y a des dépendances pour les scripts de Richardson. Sur une distribution basée sur Debian Je pense que ça passerait facilement. Par contre sur SHR, j'ai plus de doutes. C'est peut-être un préjugé, mais dès qu'on sort du cadre, ça deviens difficile avec SHR.

Toub, est-ce que tu as des connaissances, respectivement un intérêt pour le portage SHR?

J'ai encore fait quelques tests cet après midi. Le téléchargement des geoache prend du temps. C'est mieux de travailler sur une machine de bureau (en arrière plan) pour ensuite télécharger sur le FR. Pour mon utilisation, je ne vois pas vraiment d'avantage à travailler depuis le FR.

Il me semble qu'il y a aussi plein de choses qui ne marche pas tès bien avec les scripts de Richardson, du moins pas comme dans la documentation. Enfin, plein de choses pas très claires pour moi. Est-ce que quelqu'un à des retours d'expériences à partager?

J'ai jamais utilisé Navit. Est-ce que c'est qu'il y a une base de donnée scriptable comme Tango ?

Salutations

Rey Cyril

Hors ligne

 

#4 19-07-2010 22:22:45

Toub
Addicted-Moko
Date d'inscription: 17-07-2009
Messages: 106

Re: Geocaching script

Salut,

Hélas non, je n'ai pas beaucoup de connaissances, mais surtout un gros manque de temps (je n'ai pas encore pu tester cela)...

Mais ça serait un gros plus pour le freerunner d'avoir un GPS fonctionnel sans connection GPRS.

A+


Freerunner A7 - SHR unstable sur µSD (06/09/2009 full + upgrades)

Hors ligne

 

#5 25-11-2010 14:06:29

KaZeR
Addicted-Moko
Lieu: Lille
Date d'inscription: 15-10-2008
Messages: 390

Re: Geocaching script

crl a écrit:

J'ai jamais utilisé Navit. Est-ce que c'est qu'il y a une base de donnée scriptable comme Tango ?

Il est facile d'ajouter des bookmarks ou des POI en mode texte : http://wiki.navit-project.org/index.php/Other_maps

Si je peux aider, n'hésitez pas!


Heureux possesseur d'un Freerunner
Membre du projet Navit
Flash : shr-full-eglibc-ipk-rc4-20110513-om-gta02.rootfs.ubi
Kernel : uImage-2.6.37-r5-oe6-om-gta02.bin

Hors ligne

 

#6 25-11-2010 19:54:36

crl
Moko
Lieu: Monthey (Suisse)
Date d'inscription: 08-06-2010
Messages: 14

Re: Geocaching script

Il semblerait que les fonctions de "Rick Richardson's Linux tools for geocaching" ne fonctionnent plus pour les comptes gratuits. En tout cas la dernière fois que j'ai essayé, ça ne marchait pas.

Entre temps, j'ai amélioré le script ci-dessus et créé la même chose pour wikipedia en plusieurs sous scripts.

Le premier script pour wikipedia télécharge la page avec les articles dans un rayon de 10km (http://toolserver.org) et la transforme en fichier tabsep.
Un deuxième script prend le fichier tabseb et télécharge tous les articles wikipedia avec curl (de manière très très polie bien sure..!).
Un troisième script transforme le fichier tabsep en sqlite pour tango GPS.

J'utilise en voyage. Ainsi j'ai toutes les infos sur les destinations en offline dans mon FR ou dans mon eeepc.

KaZeR a écrit:

Il est facile d'ajouter des bookmarks ou des POI en mode texte : http://wiki.navit-project.org/index.php/Other_maps

En effet, je pense qu'il est très facile d'ajouter des POI en mode text. Je pense qu'on peut facilement transformer le script "Convert CSV POIs to Navit format" pour utiliser des fichier "tabseb" ou même directement générer un fichier CSV.

KaZeR a écrit:

Si je peux aider, n'hésitez pas!

Comme évolution, il y a bien quelques soucis avec le codage des caractères qui mériteraient d'être corrigés. Problème que j'ai traité de manière peu recomandable, mais assez efficace. (tr -d "âàçéèêëîïôöùüÀÂÇÉÈÊËÎÏÔÖÙÜÅØøåæ¤,hmm<> ")

Mais sinon, j'ai arrêté de travailler dessus, car la solution que j'utilise répond plus ou moins bien à mon besoin.

Néanmoins, c'est volontiers que j'accepte de l'aide. Comment voudrais-tu faire évolluer le script ?

Hors ligne

 

#7 25-11-2010 20:11:38

crl
Moko
Lieu: Monthey (Suisse)
Date d'inscription: 08-06-2010
Messages: 14

Re: Geocaching script

mokowiki-dest2tabsep.sh

Code:

#!/bin/bash
    clear

#place definition
    url=$1   #http://toolserver.org/~dispenser/cgi-bin/locateCoord.py?dbname=coord_enwiki&lon=12.568333&lat=55.676111&range_km=20
    dest=$2  #dest folder

#dest folder 
    mkdir --parent --verbose $dest
    cd $dest
    
#get page
    echo
    echo "******"$dest "    :  " $url
    wget --output-document wiki.html $url
    sleep 2 #be polite
    
#tabsep from toolserver
    awk '/<!--RESULTS-->/,/<!--\/RESULTS-->/' wiki.html \
        | tr -d '\r\n\t'\
        | sed 's;<td><\/td>;<td>empty<\/td>;g'\
        | sed 's;<a href="http:\/\/en.wikipedia.org\/w\/index.php?curid=;;g'\
        | sed 's;<a href="http:\/\/fr.wikipedia.org\/w\/index.php?curid=;;g'\
        | sed 's;">;\t;g'\
        | sed 's;<\/td>;\t;g' \
        | sed 's;<\/tr>;\n;g' \
        | sed 's;<[^>]*>;;g' \
        | tr -d "âàçéèêëîïôöùüÀÂÇÉÈÊËÎÏÔÖÙÜÅØøåæ¤,:/<> "\
        | awk '{ print $1"\t"$2"\t"$9"\t"$10 }'\
        | tee wiki.tabsep
    cd -
exit

mokowiki-tabsep2localhtml.sh

Code:

#!/bin/bash

#param Download
    lang=$1
    tabsepfile=$(ls *.tabsep)

#Download html article list 
    while read lat lon curid title
    do
        url=http://$lang.wikipedia.org/w/index.php?curid=$curid
        echo $title "    :  " $url
        wget --html-extension --wait=2 --random-wait --span-hosts --convert-links --no-directories --page-requisites --accept=html,jpg,JPG,png,PNG $url
        mv index.php?curid=$curid.html "$title.html"
        sleep 3 #be polite 
    done < $tabsepfile

mokowiki-tabsep2tango.sh

Code:

#!/bin/bash

#parameters
    tabsepfile=$1 #from command line 
    cat=$2  #tangogps categorie
    tangosqlfile=$(echo $tabsepfile | sed 's;tabsep;tangosql;g')
    tangopiodb="/home/alf/.tangogps/poi.db"
    desc=$3
    echo $tabsepfile ">>" $tangosqlfile 

#tabsep to TangoGPS SQLlite
    rm $tangosqlfile #delete old file
    while read lat lon curid title 
    do
        title=$(echo $title |  tr -d "/'" )        
        echo "delete from poi where idmd5='$curid' and lat='$lat' and lon='$lon';" >> $tangosqlfile                
        echo "replace into poi (idmd5,lat,lon,visibility,cat,subcat,keywords,desc,price_range,extended_open) values ('$curid','$lat','$lon','0.0','$cat','1','$title','Wikipedia id=$curid $desc/$title','0.0','0.0');" >> $tangosqlfile             
    done < $tabsepfile

#insert sql into Tangogps poi.db
    #echo "Add to TangoGPS ? [Y/N]";    read mot;if    [ "$mot" = "Y" ]||[ "$mot" = "y" ];then
    #cp "$tangopiodb" "$tangopiodb.bak"     #pio.db backup    
    sqlite3  "$tangopiodb" < "$tangosqlfile"     
    #fi

# to do : /usr/share/pixmaps/tangogps-poi.png -> changer étoile en wiki

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.20
Traduction par FluxBB.fr

Hébergé par :
Bearstech