Google マップ用の jQuery プラグインhttp://googlemaps.mayzes.org/を使用していますが、マーカーの追加に問題がありました。
現在のセットアップ:
AJAX コンテンツを、マップが読み込まれるシックボックスに表示します。マップは正常に読み込まれ、ジオコーディングされた住所に適切に集中します。
ただし、ジオコーディングされた住所を含むマーカーを追加すると、Google Maps API は「a is undefined」でエラーになります。
(プラグインからの関連コード)
if ( markers[i].geocode ) {
var geocoder = new GClientGeocoder();
geocoder.getLatLng(markers[i].geocode, function(center) {
if (!center)
alert(address + " not found");
else
jQuery.googleMaps.marker[i] = new GMarker(center, {draggable: markers[i].draggable, icon: gIcon});
});
}
注目すべき点はgeocoder.getLatLng(markers[i].geocode, func...
、これがマップ API を直接呼び出していることです。検査markers[i].geocode
すると、私のテスト アドレス (「オーストラリア」) として出てきます。
私が見つけたのは、初めてマップをロードすると、マップが中央に配置されますが、マーカーが原因でエラーが発生することです (UI も表示されません)。シックボックスを閉じて、別の住所/国で再度ロードすると、マップが正常にロードされ、UI が表示され、古い住所/国にマーカーが付いた新しい場所が中央に配置されます。
この後、thickbox を複数回閉じて開くと、センタリングが移動しますが、マーカーは常に最初の住所/国に留まります。
何か案は?