Google Maps multi-domaines

Si vous avez déjà utilisé l’API de Google Maps, vous savez que vous devez générer une clé pour que cela fonctionne. Malheureusement, une clé est attachée à un et un seul domaine alors que certains sites se trouvent sur plusieurs domaines en même temps (ce qui est une erreur mais ça arrive) ou que certains sites disposent d’un serveur de test et un serveur de production.

Il faut donc ruser pour arriver à ses fins. Voici ce que je propose :

var key = '';
var current_url = window.location.host;

var urls = [
	{url:"test-url.com",key:"xxxxx"},
	{url:"prod-url.com",key:"yyyyy"}
];

var found = false;
for (var i=0;i<urls.length && !found; i++) {
	if (current_url.indexOf(urls[i].url) > -1) {
		key = urls[i].key;
		found = true;
	}
}

document.write('http://maps.google.com/maps?file=api&v=2&key='+key+'');

Il suffit de faire l’inclusion de ce fichier dans l’entête de votre fichier HTML et vous pourrez utiliser Google Maps sur une nombre illimité de domaines, à condition bien sûr de générer une clé pour chacun d’entre eux.

Pour rappel, comme l’explique Mike, inutile d’enregistrer une clé pour des sous-domaines. Si une clé est enregistrée pour un domaine, elle sera valable pour ses sous-domaines. Cela justifie l’emploi de la fonction indexOf().

Toute remarque est la bienvenue. Ce code a été écrit rapidement et n’est sans doute pas parfait !

3 Comments

  1. Marin's avatar Marin says:

    il doit manquer un bout dans ta boucle (parsage du code?)
    for (var i=0;i -1) <– non?

    Like

  2. vinch's avatar Vinch says:

    Ah oui ! C’est réglé !

    Like

  3. I am extremely inspired along with your writing talents and also with the layout
    to your weblog. Is that this a paid subject or did you customize it yourself?
    Anyway stay up the excellent quality writing, it’s uncommon to peer a great blog like this one these days..

    Like

Leave a reply to Vinch Cancel reply