jquery-ui-mapを使用して、次のようなGoogleマップインスタンスを作成しています。
$('#CHMap').gmap({
mapTypeControl : false
}).bind('init', function(evt, map) {
log("Map initilised");
});
次に、スクリプトの他の場所で、InfoBoxを使用して、次のようにジオロケーションサービスからプルバックされたデータで満たされたスタイル可能な情報ボックスを追加しています。
var boxText = document.createElement("div");
var ib = new InfoBox(myOptions); //myOptions can be ignored for this example
$.each(data, function(name, value) {
$('#CHMap').gmap('addMarker', {
id:value['YourId'],
'position': value['Latitude']+','+value['Longitude'],
'bounds': true,
'icon': '/img/gicon.png'
}).click(function() {
boxText.innerHTML = "hello";
ib.setContent(boxText);
ib.open(map, this);
});
});
'data'は、Geolocationサービスから返されるオブジェクトです。gmapが最初に作成されたときに、バインドされた「init」関数内に上記の「addMarker」コードを配置すると、infoBoxは正常に表示されます。他の場所で「addMarker」コードを使用すると、コンソールで「Uncaught ReferenceError:mapisnotdefined」エラーが発生します。
「マップ」を正しく参照するにはどうすればよいですか?var map = $('#CHMap').gmap({//options});
'jquery-ui-map'のドキュメントでは、gmapが何も返さないことが示唆されているため、実行できないようです。