Vous avez trouvé ce tutoriel intéressant ? Recommandez le en cliquant sur le bouton +1    

Création polyline sur click - Afficher les LatLng encodées / décodées

Tutoriel publié le Mis à jour le

Encoder / décoder une polyline

Ce tutoriel vous permet de créer et de tracer une Polyline en cliquant sur la carte.

Au fur et à mesure de sa construction, les données de la Polyline s'affichent sous forme de données encodées (via encodePath) et d'objet LatLng sous la carte.

Encoder / décoder une polyline sur une carte Google Maps

Encodage et décodage d'une polyline et affichage des données

Polyline EncodéesLatLng de la Polyline

Exemple de code pour encoder et décoder une polyline

<!DOCTYPE html>
<html lang="fr">
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta charset="UTF-8" />
<title>Titre de votre page</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry"></script>
<script type="text/javascript">
var polyline; 
var maCarte; 
var html = "";
var flag = false; 

function initialize () { 
	var Tours = new google.maps.LatLng (47.390273,0.688834); 
	var optionsCarte = { 
		zoom: 14, 
		center: Tours, 
		mapTypeId: google.maps.MapTypeId.ROADMAP 
	}; 
  
	var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte); 
  
	var optionsPolyline = {
		map: maCarte,
		strokeColor: "#FF0000", 
		strokeOpacity: 1.0, 
		strokeWeight: 3 
	} 
	polyline = new google.maps.Polyline(optionsPolyline); 

	google.maps.event.addListener (maCarte, "click", ajouterLatLng); 
} 
	  
function ajouterLatLng(evenement){ 
	var path = polyline.getPath(); 
	path.push (evenement.latLng);
	if(flag){
		html = html +", "+ evenement.latLng;
	}else{
		html = html + evenement.latLng;
		flag = true;
	}
	/* Mise à jour des champs texte affichant les données de la polyline */
	var encodeString = google.maps.geometry.encoding.encodePath (path); 
	if (encodeString !== null) { 
		document.getElementById("encodedPolyline").innerHTML = encodeString; 
		document.getElementById("coordonnes").innerHTML = html; 
	} 
} 
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
	<div id="EmplacementDeMaCarte" style="width:100%; height:400px"></div>
	<table style="width:100%">
		<tr><th style="width:50%">Polyline Encodées</th><th style="width:50%">LatLng de la Polyline</th></tr>
		<tr>
			<td><textarea style="width:100%;height:400px;border:1px solid #CCCCCC" id="encodedPolyline" name="" cols="" rows="" readonly="readonly"></textarea></td>
			<td><textarea style="width:100%;height:400px;border:1px solid #CCCCCC" id="coordonnes" name="" cols="" rows="" readonly="readonly"></textarea></td>
		</tr>
	</table>
	<noscript>
	<p>Attention : </p>
	<p>Afin de pouvoir utiliser Google Maps, JavaScript doit être activé.</p>
	<p>Or, il semble que JavaScript est désactivé ou qu'il ne soit pas supporté par votre navigateur.</p>
	<p>Pour afficher Google Maps, activez JavaScript en modifiant les options de votre navigateur, puis essayez à nouveau.</p>
	</noscript>
</body>
</html>