Bonjour,

J'aimerais faire un upload des fichiers du type gpx/tcx et ensuite le visualiser dans la goolge map v3. Je suis en localhost pour l'instant.

La fonction loadGPXFileIntoGoogleMap(map, "nom_fichier.gpx"); fonctionne très bien avec le nom de fichier en dur.
Mais lorsque, j'essaie d'uploader le fichier à partir du formulaire (évènement onsubmit appelle la fonction get_file()) qui passe une variable contenant le nom du fichier, un cadre gris s'affiche à la place de la map durant 1 seconde et disparaît. voir mon code ci-dessous.

1) Une idée de pourquoi ca ne fonctionne pas ?
2) Es-ce la bonne manière de faire pour uploader un fichier?
3) Quelqu'un aurait-il une meilleure piste ou un code équivalent de ce que je voudrais faire ?

Un grand merci d'avance!


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="loadgpx.js" type="text/javascript"></script>
<script type="text/javascript">
function get_file() {
	var fileInput = document.getElementById("file_upload"); 
	var uploadedFile = fileInput.value; 
	var myOptions = {
		zoom: 8,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
 
	var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	loadGPXFileIntoGoogleMap(map, uploadedFile);
}
 
function loadGPXFileIntoGoogleMap(map, filename) {
	$.ajax({url: filename,
		dataType: "xml",
		success: function(data) {
		  var parser = new GPXParser(data, map);
		  parser.setTrackColour("#ff0000");     // Set the track line colour
		  parser.setTrackWidth(5);          	// Set the track line width
		  parser.setMinTrackPointDelta(0.001);      // Set the minimum distance between track points
		  parser.centerAndZoom(data);
		  parser.addTrackpointsToMap();         // Add the trackpoints
		  parser.addWaypointsToMap();           // Add the waypoints
		}
	});
}
</script> 
<style>
body {
	font-family: sans-serif
}
 
#map_canvas {
	margin: 5px 0px 5px 0px;
	border: 1px solid #D7DFEC; 
	width:512px; 
	height:400px;
}
 
#cardio_map fieldset {
	margin: 5px 0px 5px 0px;
	border: 1px solid #D7DFEC; 
	width:512px; 	
}
</style>
</head>
<body>
  <div id="cardio_map">
	<form name="formFileUpload" method="post" enctype="multipart/form-data" action="cardio_map.html" onsubmit="return get_file();">
		<fieldset>
			<legend>upload un fichier pour le visualiser dans la map</legend>
			<label>fichier</label>
			<input type="file" id="file_upload" name="file_upload" size="20" />
			<input type="submit" name="file_submit" value="Visualiser la map" />		
		</fieldset>	
	</form>
  </div>
  <div id="map_canvas">
  </div>
</body>
</html>