Updated : January 2011
Virtual Host での Google Keyの取り扱い方法
Google API Key は、使用するWEBサイトのURL毎に異なったKeyが発行される。
異なったURLでアクセスすると、「Google マップ APIに使用されているキーは他のウェブサイトに登録されています。…」の表示がされる。
ところが、Virtual Hostなどの設定により、複数のURIでアクセスされるサーバの場合、それぞれのURIに対応した複数のGoogle API Keyを取得し、それをJavascript中で切り替える必要がある。
対応方法
URLに対応して必要なJavascriptを動的に読み込むことで対応する。
「script」タグを動的に追加作成することとなる。
例)
includeGoogleAjax(location.hostname);
function includeGoogleAjax(sitename, cbf){
var url = 'http://www.google.com/jsapi?key=' + getGoogleKey(sitename);
if (cbf)
url += '&callback=' + cbf;
includeJS(url)
}
function getGoogleKey(sitename){
switch (sitename) {
case "(url 1)":
return 'ABQIAAAACgxlchEzseP5OWCV5PeRwBRxUvSRp6iAzN9LpR…';
break;
case "(url 2)":
return 'ABQIAAAACgxlchEzseP5OWCV5PeRwBR14xKUJIp27ucV4N…';
break;
…
default:
return 'ABQIAAAACgxlchEzseP5OWCV5PeRwBRAmWvONyTTbPyd…';
}
}
function includeJS(url){
var script = document.createElement("script");
script.type = 'text/javascript';
script.charset = 'utf-8';
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}