GMap2 という jquery マップ スクリプトを使用しています。jquery/ajax を介して php スクリプトを呼び出し、マーカー情報を json 形式で返します。問題は、これを行うと、マップ ポイントが表示されないことです。しかし、json 値を手動で追加すると、マップ ポイントは正常に機能します。gmap コードを呼び出すコードは次のとおりです。
$('.shownearby').click(function () {
$.ajax({
cache:false,
url:'path/to/php/script',
dataType:'json',
success: function(data) {
$('#showmap').gMap(
{
latitude : data.dlat,
longitude : data.dlon,
address : data.daddress,
maptype : 'ROADMAP',
zoom : 10,
markers : data.nearby
}
);
}
});
return false;
});
ご覧のとおり、markers オプションは、成功時に返される json 変数データから Nearby の値をロードしています。以下に、data.nearby から返されるエントリの例を示します (例として、lat/long/html をダミー データに置き換えました)。
[{"latitude":"latva","longitude":"latlon","html":"htmlstuff"}]
しかし、この情報を渡すと機能しませんが、マーカー変数の横に緯度/経度とhtmlの値を持つ上のjson値を直接貼り付けると、マップポイントがうまく表示されます。問題は何ですか?
gmap2 スクリプトで複数のポイントを使用するサンプル コードを次に示します。
$('#map_addresses').gMap({
address: "Quito, Ecuador",
zoom: 5,
markers:[
{
latitude: -2.2014,
longitude: -80.9763,
html: "_latlng"
},
{
address: "Guayaquil, Ecuador",
html: "My Hometown"
},
{
address: "Galapagos, Ecuador",
html: "_address"
}
]
});