Friday, November 18, 2016

INTEROPERABILITE des STORY MAPS et odyssey.js (et Flickr)

INTEROPERABILITE des STORY MAPS

Lorsque l’on réalise une « narrative story map » une histoire/ballade cartographie narrative, le plus long consiste à écrire du texte de qualité et référencé. 
Il faut pouvoir sauvegarder ce texte (avec ou sans mise en forme) et sa story map narrative d’un bloc . 

J'ai réalisé plusieurs post sur les story maps (voir le tag "GPS" ou "map" de ce blog) y compris une synthèse des divers stratégies. Ici c'est mon choix actuel dans la perspective de l'interopérabilité de ce long travail d'écriture et de collecte des médias.

odyssey.js,

Avec odyssey.js, (https://cartodb.github.io/odyssey.js/) nous pouvons mettre en forme le fichier markdown avec un éditeur de texte comme notepad++ , textedit  BBEedit avec extension markdown (ou d’autres logiciels markdown, voir tag de ce blog « markdown »voir MS word ou google doc… On peut utiliser du HTML pour mettre en forme du texte de manière plus poussée. Voir aussi mes autres posts plus détaillés sur ce javascript et les web services associés (tag "GPS" ou "map" ou "markdown" de ce blog).
Je rappelle ici que markdown est un langage simple pour écrire du texte alors que HTM est un langage à balise plus compliqué (et plus lourd)  fait pour la visualisation.
Pour insérer les données Latitude,Longitude et les URL des images, il faut mettre en forme avant l’écriture du fichier markdown.
Plutôt que du copier/coller pour chaque URL image/video (son seul est un cas particulier) et chaque marqueur Lat,Long, il faut au préalable télécharger par batch des lots d’images qui gère le géo-taggage.
Pour cela plusieurs possibilités:

batch des lots d’images qui gère le géo-taggage

1/Créer un blogspot privé où vous incorporez/télécharger vos images. Puis dans l’HTML, récupérer la liste des URL et filtrez le fichier avec MS word excel ou google doc ou sheet par exemple (sauvegarder aussi en .CSV). 

Je pense que l’on peut aussi le faire avec Flickr qui permet de vérifier la géo-localisation via l’affichage d’une carte de ces photos…
Mais il ne peut le faire directement.
Il faut passer par la fonction API flickr.photosets.getPhotos de l’API Flickr:
on peut récupérer les "id" de toutes les photos d'un album (set en anglais)  (500 photos max dans un album) dans un fichier simple qui est de 4 types possibles:
  •  XML (XML-RPC; http://xmlrpc.scripting.com/  )
  •  JSONP  (JavaScript Object Notation, est un format simple d'échange de données assimilable par l'ordinateur, qui facilite l'élaboration d'applications en JavaScript avec l'API  json.org )
  •  JSON
  •  PHP Serial (fichier .mdlp)

un clic en bas sur Explorateur API : flickr.photosets.getPhotos
donne ceci:

Que la liste de toutes les Id des photos, de leur titre, ici en XML (à partir du propriétaire_id 144398584@N07: et du photoset_id 72157676525638806: 
<rsp stat="ok">
  <photoset id="72157676525638806" primary="25373090639" owner="144398584@N07" ownername="stef42530" page="1" per_page="500" perpage="500" pages="1" total="6" title="velay-test1">
    <photo id="25373090639" secret="xxxxx" server="5344" farm="6" title="yssingeaux" isprimary="1" ispublic="1" isfriend="0" isfamily="0" />
    <photo id="22808772578" secret="xxxx" server="5815" farm="6" title="fontaine" isprimary="0" ispublic="1" isfriend="0" isfamily="0" />
    <photo id="30973507366" secret="xxxx" server="5347" farm="6" title="statue Marie" isprimary="0" ispublic="1" isfriend="0" isfamily="0" />
    <photo id="30707294970" secret="xxx" server="5653" farm="6" title="la croix de mission" isprimary="0" ispublic="1" isfriend="0" isfamily="0" />
    <photo id="30870710272" secret="xx" server="5498" farm="6" title="communauté pays des sucs" isprimary="0" ispublic="1" isfriend="0" isfamily="0" />
    <photo id="30973523796" secret="xx" server="5483" farm="6" title="eglise de champclause-nonReduit" isprimary="0" ispublic="1" isfriend="0" isfamily="0" />
  </photoset>
</rsp>
On a bien les 6 photos.

Et les URL et les Lat,Long des photos d'un album?

A partir de cette liste des photo_id, avoir les URL c'est simple (voir ci-dessous  flickr.photos.getInfo).
www.flickr.com/photos/144398584@N07/25373090639/

Pour les données de Lat,Long et avec  flickr.photos.geo.getLocation ce n’est que par une seule photo:
photo par photo. Donne aussi les Place_id et woeid (nom ville, région, pays; voir ci-dessous):

idem photo par photo via une Id de photo.
On a dans un même fichier les données géo et l'URL. 
On peut donc le traiter facilement pour le mettre dans un fichier excel.
Ce fichier text retourne Lat, Long et aussi URL complète avec aussi 
le nom de l' Id propriétaire (ici 144398584@N07) et Id photo (25373090639):

<url type="photopage">https://www.flickr.com/photos/144398584@N07/25373090639/</url>

pour les données géo:
<location latitude="45.142316" longitude="4.123694" accuracy="16" context="0" place_id="2357Wa9XUbm_ZCg" woeid="633062">
      <locality place_id="2357Wa9XUbm_ZCg" woeid="633062">Yssingeaux</locality>
      <county place_id=".z9.tGJQUL8BHZ7KeQ" woeid="12597130">Haute-Loire</county>
      <region place_id="6VHmZr5WU7.XrIHq" woeid="7153310">Auvergne</region>
      <country place_id="lbWye9tTUb6GOcp80w" woeid="23424819">France</country>
    </location>

Pour les données EXIF complètes hélas d’une seule photo, on peut utiliser:
https://www.flickr.com/services/api/explore/flickr.photos.getExif

Sinon pour une manipulation des URL flickr et affichage d'un album en défilement, voir mon petit code javascript:
http://jsdo.it/ex-ample.blogspot/uLfn/edit
Pour les données Lat,Long de nombreuses photos: on peut aussi utiliser des outils de conversion des données EXIF par lots: voir d’autres post de ce blog (tag EXIF ou GPS).

Les édtiteurs web

2/On peut utiliser ArcGis story journal (ou cascade) qui incorpore les images géo-taggées par lot via flickr  (ou google picasa (fonctionne pas bien en cette fin 2016) ou via un t-fichier tableur .CSV. Générez la story map sans mettre du texte un par un. Cette méthode permet de ne pas gérer directement les URL et les (Lat,Long), le builder s’en occupe.


Conclusion

Bref, avec cette solution odyssey.js, le plus important est que l’on peut sauvegarder directement son travail sous deux formes:
a/ le fichier markdown (.md et bien sur son transcodage .HTML avec par exemple un « Rich Text Editeur »)
b/ le site web (et son javascript) hébergé.

c) une troisième  si on utilise les builders d’ARcGIS online de story map.
Rem: votre fichier markdown peut aussi être traité pour extraire le texte de chaque image pour le mettre dans ce .CSV. Puis on peut refaire une nouvelle story map avec ces ArcGIS builders avec le texte via ce .CSV.
On a alors un troisième format «  site web » de votre story map sous cette forme de site intégré ArcGIS hébergé.
d) de plus vous aurez aussi un quatrième format de fichier de sauvegarde de votre story map en .CSV complet…


No comments:

Post a Comment