Bonjour à tous,
Certains d'entre vous l'auront probablement remarqué, Kurviger existe en application sur Google Play mais pas encore sur iOS (elle devrait arriver mais aucun délai n'est encore annoncé). Étant sur iPhone je n'ai pas d'idée de ce que donne cette application sur smartphone.
J'avais envie de pouvoir utiliser mon MZD pour me guider sur les parcours créés sur kurviger pour plusieurs raisons :
- la voix du GPS ne sort que du coté du conducteur, ce qui fait que le passager est moins dérangé et peut plus profiter de la ballade et de la musique.
- comme c'est le GPS intégré je ne suis pas obligé d'écouter une playlist du smartphone pour avoir le guidage vocal.
- accessoirement, le GPS intégré à moins tendance à nous positionner dans le champ à coté de la route.
Je me suis donc mis en recherche d'une solution et je suis tombé sur ce logiciel qui pourrait nous intéresser
https://www.microsoft.com/fr-fr/store/p/routetocontacts/9nk03zq12lq3.
Ce logiciel est intéressant pour ceux qui sont soit sur Windows Phone soit sur PC windows et qui synchronisent leurs contacts entre leur PC et leur Smartphone (quel qu'en soit la marque).
Le principe de base est de convertir le fichier GPX en une liste d'adresse intégrée aux contacts du téléphone pour permettre au MZD de les sélectionner comme étapes GPS.
Je n'ai pas pu l'essayer car je suis sur Mac OSX et sur iPhone.
Pour ceux qui sont intéressés par la solution Windows / Windows-Phone vous pouvez aller sur ce sujet de Miata.net :
https://forum.miata.net/vb/showthread.php?t=628785 Étant sur Mac et trouvant l'idée intéressante je me suis mis en tête de créer un applescript créant des fiches contact à partir des fichiers GPX venant de Kurviger.
J'ai donc écrit ce script :
Code :
-- si l'affichage des noms de contacts est sur le modèle nom-prénom, inverser myFirstName et My LastName dans les lignes avant la ligne de tirets
set myFirstName to "AA RT" -- entre les guillemets, définissez un nom pourdistinguer vos roadtrips de vos vrais contacts (dans mon cas "AA RT" - AA pour les mettre en premier, RT pour roaddtrip)
set myLastName to the text returned of (display dialog "Quel nom de contact pour le Roadtrip?" & return & return & "Attention, il vaut mieux ne pas dépasser 24 caractères" default answer "")
set MyEnglishCountries to {"Belgium", "Spain", "Netherlands", "Germany", "Italy", "Switzerland", "Austria"}
set MyLocalCountries to {"Belgique", "Espagne", "Pays-Bas", "Allemagne", "Italie", "Suisse", "Autriche"}
----------------------------------------------------------------------------------
set HTMLfirst to "http://maps.googleapis.com/maps/api/geocode/xml?latlng="
set HTMLmiddle to ","
set HTMLlast to "&sensor=false"
set myStartPoint to display dialog "Votre emplacement actuel est le point de départ de votre GPX?" buttons {"Oui", "Non"} default button 2
set myStartPoint to button returned of myStartPoint
if myStartPoint = "Oui" then
beep
set myRecord to 1
else
set myRecord to 0
end if
set the_file to ((choose file without invisibles) as string)
tell application "System Events"
tell XML element "gpx" of contents of XML file the_file
set myWPTs to every XML element whose name = "wpt"
repeat with a from 1 to length of myWPTs
if a > myRecord then
set myNumber to ""
set myroad to ""
set currentWPT to item a of myWPTs
set attr to {}
set end of attr to value of XML attribute of currentWPT
set myLAT to item 1 of item 1 of attr
set myLON to item 2 of item 1 of attr
set myXML to do shell script "curl " & quoted form of (HTMLfirst & myLAT & HTMLmiddle & myLON & HTMLlast)
if "<address_component>" is in myXML then
tell application "System Events"
set d to make new XML data with data myXML
tell (XML elements of XML element "result" of XML element 1 of d whose name is "address_component")
repeat with i in it
set t to value of XML element "type" of i
set v to value of XML element "long_name" of i
if t is "street_number" then
set myNumber to v
else if t is "route" then
set myroad to v
else if t is "country" then
set mycountry to v
else if t is "postal_code" then
set myzip to v
else if t is "locality" then
set mycity to v
end if
end repeat
end tell
end tell
end if
if mycountry = "germany" then set myroad to my findAndReplace("ß", "ss", myroad)
if myNumber = "" then
set myaddress to myroad
else
set myaddress to myroad & " " & myNumber
end if
if MyEnglishCountries contains mycountry then
set MyPosition to my getPositionOfItemInList(mycountry, MyEnglishCountries)
set mycountry to item MyPosition of MyLocalCountries
end if
tell application "Contacts"
if myRecord = 1 then
set aa to (a - 1)
else
set aa to a
end if
if aa < 10 then
set myA to " 0" & aa as string
else
set myA to " " & aa as string
end if
set thePerson to make new person with properties {first name:myFirstName, last name:(myLastName & myA)}
tell thePerson
make new address at end of addresses of thePerson with properties {label:"Home", street:myaddress, city:mycity, country:mycountry, zip:myzip}
end tell
save
end tell
end if
end repeat
display dialog " Les fiches contacts sont prêts"
end tell
end tell
on getPositionOfItemInList(theItem, theList)
repeat with a from 1 to count of theList
if item a of theList is theItem then return a
end repeat
return 0
end getPositionOfItemInList
on findAndReplace(tofind, toreplace, TheString)
set ditd to text item delimiters
set text item delimiters to tofind
set textItems to text items of TheString
set text item delimiters to toreplace
if (class of TheString is string) then
set res to textItems as string
else -- if (class of TheString is Unicode text) then
set res to textItems as Unicode text
end if
set text item delimiters to ditd
return res
end findAndReplace
Pour ceux qui veulent l’utiliser il vous suffit de copier le code ci-dessus et de le coller dans une nouvelle fenêtre de l'éditeur de script (application fournie sur tout Mac).
Ce que vous pourriez être amenés à modifier est au dessus de la ligne de tirets ------------- .
Vous pourrez tester le script en cliquant sur le bouton Play en haut de la fenêtre.
Ensuite si il vous convient, il vous suffit de l’enregistrer comme application. Pour cela cliquez dans le menu "Fichier" sur "Exporter". Dans la fenêtre qui s'ouvrira; vous pourrez donner un nom au script, indiquer où vous voulez l'enregistrer et choisir "Application" dans le menu déroulant "Format de Fichier". Cela vous permettra de ne plus devoir ouvrir l'éditeur de script.
A l'usage; l'application va vous demander le nom de contact que vous voulez utiliser, Si le point de départ du GPX est votre point actuel (si vous répondez oui il ne créera pas de contact pour le point de départ du GPX) et de choisir le fichier GPX provenant de Kurviger. Il vous demandera egalement l'autorisation d'accéder à vos contacts ( cette autorisation vous sera demandée à chaque fois).
Le réglages d'export que j'utilise sur Kurviger sont les suivants : Export as "Waypoints" et Additional waypoints "few".
Pour l'utilisation des adresse dans le MZD vous pouvez vous référer à la vidéo suivante (tirée du sujet sur miata.net) :
https://1drv.ms/v/s!AkGIAyXLfEy9ik4Liqd5XrX3HwCF.
J'espère avoir été suffisamment complet... Si tel n'était pas le cas, n'hésitez pas...
Edit 04/05/17 : le code à été modifié et amélioré.

ND 1.5 skycruise(=sélection) soul red