すべての JavaScript ファイルをロードし、それらを結合して圧縮するスクリプトを WordPress で作成しました。私が使用しているJavaScriptファイルと、次のJavaScriptファイルの中で:
http://maps.googleapis.com/maps/api/js?sensor=false
私のスクリプトは正常に機能していますが、Google マップに読み込まれた JavaScript ファイルは、Google からすべての外部 JavaScript ファイルを読み込むために実行されていないように見えます。
Google マップ ファイルは、結合および圧縮後に生成された JavaScript ファイルの一番上にあり、その内容は次のとおりです。
window.google = window.google||{};
google.maps = google.maps||{};
(
function()
{
function getScript(src)
{
document.write('<'+'script src="'+src+'"'+' type="text/javascript"><'+'/script>');
}
var modules = google.maps.modules = {};
google.maps.__gjsload__ = function(name, text)
{
modules[name]=text;
};
google.maps.Load = function(apiLoad)
{
delete google.maps.Load;
apiLoad(
[
null,
[
[
[
"http://mt0.googleapis.com/vt?lyrs=m@183000000\u0026src=api\u0026hl=en-US\u0026",
"http://mt1.googleapis.com/vt?lyrs=m@183000000\u0026src=api\u0026hl=en-US\u0026"],
...
DATA
...
null,
null,
0,
"http://khm.googleapis.com/mz?v=115\u0026",
null,
"https://earthbuilder.google.com",
"https://earthbuilder.googleapis.com"
],
loadScriptTime
);
};
var loadScriptTime = (new Date).getTime();
getScript(
"http://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/13b/main.js"
);
}
)();
上記の内容は、Web ブラウザーで直接URL http://maps.googleapis.com/maps/api/js?sensor=falseにアクセスした場合と同じです。
問題は、そのデータを正しく取得している間、コンソールに表示される Google mas オブジェクトが次のようになっていることです。
console.log(google);
Object
maps: Object
Load: function (apiLoad)
{
delete google.maps.Load;
...
data
...
}
__gjsload__: function(name, text)
{
modules[name] = text;
}
modules: Object
__proto__: Object
__proto__: Object
そして、以下について私は得ています:
console.log(google.maps.LatLng);
undefined