Exploitation de
ViaMichelinApi basée sur capture par
WGet
suivant la maquette fourne dans le kit:
http://dev.viamichelin.fr/wswebsite/fra/htm/api/exemple/exemple-itineraire.html
Capture par wget: (1.bat)
"c:\program files\gnuwin32\bin\wget.exe" -o %1.log -O %1.txt "http://www.viamichelin.fr/vmw2/maf/dyn/controller/itineraryFinder?lang=fra&divId=remoteCaller1246479915904&from=&strStartCoord=%2*%3&strStartAddress=&strStartCityCountry=EUR&strDestCoord=%4*%5&strDestAddress=&strDestCityCountry=EUR&intItineraryType=1&vh=CAR&distance=km&strVehicle=0&devise=1.0%7CEUR&carbCost=1.1&isAvoidFrontiers=false&isFavoriseAutoroute=false&isAvoidPeage=false&isAvoidVignette=false&isAvoidLNR=false&autoConso=6.8&villeConso=6&routeConso=5.6&dtmDeparture=1%2F7%2F2009&trPds=0&trWidth=0&trHeight=0&charset=UTF-8&ApiKey=JSBS20070201173627379646361061"
dépouillé:
c:\program files\gnuwin32\bin\wget.exe" -o %1.log -O %1.txt
"
http://www.viamichelin.fr/vmw2/maf/dyn/controller/itineraryFinder
?lang=fra
&divId=remoteCaller1246479915904
&from=
&strStartCoord=%2*%3
&strStartAddress=
&strStartCityCountry=EUR
&strDestCoord=%4*%5
&strDestAddress=
&strDestCityCountry=EUR
&intItineraryType=1
&vh=CAR&distance=km
&strVehicle=0
&devise=1.0%7CEUR
&carbCost=1.1
&isAvoidFrontiers=false
&isFavoriseAutoroute=false
&isAvoidPeage=false
&isAvoidVignette=false
&isAvoidLNR=false
&autoConso=6.8
&villeConso=6
&routeConso=5.6
&dtmDeparture=1%2F7%2F2009
&trPds=0
&trWidth=0
&trHeight=0
&charset=UTF-8
&
ApiKey?=JSBS20070201173627379646361061"
exemple d'appel
call 1.bat id xd yd xf yf
exemple de sortie
variables:
- Id du trajet
- rang dans le trajet
- rang si description multiple du segment (0 si point/ville)
- mètres depuis départ en fin de segment
- secondes depuis départ en fin de segment
- mètres du segment
- secondes du segment
- nom de la voie
- code type
- code style
- vitesse calculée (km/h)
cb 1 1 42 7 42 7 "Rue Berthelot" "0" "" 21
cb 2 1 79 14 37 7 "Rue Tolstoï" "0" "" 19
cb 3 1 101 18 22 4 "Rue Rameau" "0" "" 19
cb 4 1 323 56 222 38 "Rue Jules Verne" "0" "" 21
cb 5 1 389 63 66 7 "D61" "1" "6" 33
cb 5 2 389 63 66 7 "Avenue Paul Vaillant-Couturier" "0" "" 33
cb 6 1 643 92 254 29 "D61" "1" "6" 31
cb 6 2 643 92 254 29 "Avenue Paul Vaillant-Couturier" "0" "" 31
cb 7 1 655 93 12 1 "D126B" "1" "6" 43
cb 7 2 655 93 12 1 "Avenue Gabriel Péri" "0" "" 43
cb 8 1 930 128 275 35 "D126B" "1" "6" 28
cb 9 1 1024 139 94 11 "D126" "1" "6" 30
cb 9 2 1024 139 94 11 "D126B" "1" "6" 30
cb 9 3 1024 139 94 11 "Rue Gabriel Péri" "0" "" 30
cb 10 1 7610 449 6586 310 "A6B" "4" "2" 76
cb 10 2 7610 449 6586 310 "E15" "3" "1" 76
cb 10 3 7610 449 6586 310 "E50" "3" "1" 76
cb 11 1 8416 484 806 35 "E50" "3" "1" 82
cb 11 2 8416 484 806 35 "L'Aquitaine" "0" "" 82
cb 12 1 47994 2019 39578 1535 "A10" "4" "2" 92
cb 12 2 47994 2019 39578 1535 "E05" "3" "1" 92
cb 12 3 47994 2019 39578 1535 "E50" "3" "1" 92
cb 13 1 196700 6511 148706 4492 "A11" "4" "2" 119
cb 13 2 196700 6511 148706 4492 "E50" "3" "1" 119
cb 14 1 290121 9333 93421 2822 "A81" "4" "2" 119
cb 14 2 290121 9333 93421 2822 "E50" "3" "1" 119
cb 15 1 331109 10739 40988 1406 "N157" "2" "5" 104
cb 15 2 331109 10739 40988 1406 "E50" "3" "1" 104
cb 16 1 344953 11384 13844 645 "N136" "2" "5" 77
cb 16 2 344953 11384 13844 645 "E50" "3" "1" 77
cb 17 1 479894 16307 134941 4923 "N24" "2" "5" 98
cb 18 1 527309 18036 47415 1729 "N165" "2" "5" 98
cb 18 2 527309 18036 47415 1729 "E60" "3" "1" 98
cb 19 1 527556 18051 247 15 "D24" "1" "6" 59
cb 20 1 530959 18264 3403 213 "D122" "1" "6" 57
cb 21 1 531568 18328 609 64 "D122" "1" "6" 34
cb 22 1 533561 18470 1691 110 "Route de Melgven" "0" "" 55
cb 23 1 533680 18481 119 11 "Rue de Melgven" "0" "" 38
cb 24 1 534482 18569 802 88 "Rue de Melgven" "0" "" 32
cb 25 1 534517 18572 35 3 "Route de Melgven" "0" "" 42
cb 26 1 534554 18576 37 4 "D783" "1" "6" 33
cb 26 2 534554 18576 37 4 "Place de la Mairie" "0" "" 33
cb 27 1 534656 18589 102 13 "D1" "1" "6" 28
cb 27 2 534656 18589 102 13 "Place de l'Eglise" "0" "" 28
cb 28 1 535533 18685 877 96 "D1" "1" "6" 32
cb 29 1 540552 19010 5019 325 "D1" "1" "6" 55
cb 30 1 542196 19169 1644 159 "D1" "1" "6" 37
cb 31 1 542312 19180 116 11 "Route de Pointe de Trevignon" "0" "" 37
cb 32 1 542564 19207 252 27 "Route de Pointe de Trevignon" "0" "" 33
Conversion sortie de wget en sas (batch, ou non-interactive)
rem capture par wget -O
rem version 20090604-1832
dim fs
set fs=createobject("scripting.filesystemobject")
dim fi
dim fo
dim ft
'
Set args = Wscript.Arguments
dim nom
if args.count =1 then
nom=args(0)
else
nom=inputbox("nom du fichier capture par wget (sans le .txt)")
end if
'
if ucase(right(nom,4))=".TXT" then nom=left(nom,len(nom)-4)
'
nomin=nom & ".txt"
nomout=nom & ".don"
msgbox nom & vbcrlf & nomin & vbcrlf & nomout
set fi=fs.opentextfile(nomin ,1)
set ft=fs.createtextfile(nomout,true)
dim iti
iti=false
dim tot
dim rang
tot=""
rang=0
fini=false
'
tot=fi.readline
tot=left(tot,instr(tot,"document")-1)
tot=mid(tot,instr(tot,"var fdr"))
dim i
dim ipre
dim ifin
ifin=0
for i=1 to len(tot)
if mid(tot,i,1)=";" then
ipre=ifin+1
ifin=i
dim li
li=mid(tot,ipre,ifin-ipre+1)
' ft.writeline "* " & li
if instr(li,"EFDRWay")>0 then
'
dim virg
dim kmsec
kmsec=li
virg=instr(kmsec,",")
kmsec=mid(kmsec,virg+1)
dim pos
virg=instr(kmsec,",")
pos=left(kmsec,virg-1) & " "
kmsec=mid(kmsec,virg+1)
virg=instr(kmsec,",")
pos=pos & left(kmsec,virg-1) & " "
kmsec=mid(kmsec,virg+1)
virg=instr(kmsec,",")
pos=pos & left(kmsec,virg-1) & " "
num=left(kmsec,virg-1)/1000
kmsec=mid(kmsec,virg+1)
virg=instr(kmsec,",")
pos=pos & left(kmsec,virg-1) & " "
den=left(kmsec,virg-1)/3600
vit=" " & num/den
dim pt
pt=instr(vit,",")
if pt=0 then
' msgbox vit
else
vit=left(vit,pt-1)
end if
' ft.writeline "+" & pos
' extraire libvoie
dim ivoie
dim posave
posave=pos
dim compte
compte=0
ivoie=instr(li,"new EFDRLibVoie(")
while ivoie >0
pos=posave
li=mid(li,ivoie+len("new EFDRLibVoie("))
dim ifinvoie
ifinvoie=instr(li,")")
dim liune
liune=left(li,ifinvoie-1)
' extraire trois arguments
virg=instr(liune,",")
pos=pos & left(liune,virg-1)& " "
liune=mid(liune,virg+1)
virg=instr(liune,",")
pos=pos & left(liune,virg-1) & " "
pos =pos & mid(liune,virg+1)
compte=compte+1
if compte=1 then rang=rang+1
ft.writeline nom & " " & rang & " " & compte & " " & pos & vit
ivoie=instr(li,"new EFDRLibVoie(")
wend ' ivoie
end if
end if ' efdrway
next
ft.close
' msgbox "termine"
rapaillage
la mise "bout a bout" des fichiers .don se fait simplement par la commande du genre:
type *.don > totale.txt
Paramètres
intItineraryType
- 1 recommandé, à pieds
- 10 économique
- 4 rapide
- 5 plus court
- 6 agréable
à pied: strVehicle=2