Pour utiliser l'API de cartographie de Virtual Earth dans un formulaire CRM, rien de plus simple. Voici un exemple de la procédure à suivre pour afficher sur une carte la position d'un compte enregistré dans CRM :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script>
<script>
//Déclaration des variables globales
var map = null;
var line = null;
var city = null;
var postalcode = null;
var country = null;
var destinationAddress = null ;
function DisplayMap(){
//Récupération des informations d'adresse dans le formulaire CRM
line = parent.document.forms[0].all.address1_line1.DataValue;
postalcode= parent.document.forms[0].all.address1_postalcode.DataValue;
city = parent.document.forms[0].all.address1_city.DataValue;
country = parent.document.forms[0].all.address1_country.DataValue;
//Création de la carte
map = new VEMap('myMap');
map.LoadMap();
//Construction de l'adresse du compte à transmettre à Virtual Earth
destinationAddress = line + "," + city + "," + country ;
//Recherche de l'adresse du compte sur la carte (traitement asynchrone avec fonction de callback)
map.Find(null, destinationAddress, null, null, null, null, null, null, false, null, callback);
}
//Traitement de la fin de la recherche
function callback() {
//Configuraton du zoom au niveau voulu (entre 1 et 19)
map.SetZoomiLevel(16);
//Affichage d'une punaise personnalisée au centre de la carte
DisplayPushpin();
}
//Affichage d'une punaise au centre de la carte
function DisplayPushpin() {
//Création de la forme au point central de la carte
var shape = new VEShape(VEShapeType.Pushpin, map.GetCenter());
//Configuration du titre
shape.SetTitle("Par exemple adresse du compte");
shape.SetDescription(line + "<br/>" + npa + " " + city + "<br/>" + country);
map.AddShape(shape);
}
</script>
</head>
<body onload="DisplayMap();">
<div id='myMap'>Chargement en cours, veuillez patienter...</div>
</body>
</html>
Attention de ne pas oublier de décocher la restriction de sécurité pour le cross-scripting. Cela bloquerait toute intéraction entre l'iFrame et votre formulaire.
Attention toutefois à l'algorithme de recherche de l'adresse dans la page html. N'hésitez pas à l'ajuster en fonction des adresses que vos utilisateurs renseignent dans CRM. Il suffit par exemple que les champs de CRM ne soient pas correctement renseignés, typiquement l'information concernant le pays est manquante, et vous vous retrouvez sur la carte à Tombouctou...
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :