我知道這是一個相當古老的問題,但我想我可以根據我最近的gmap3
和Google Maps API的經驗添加一些輸入。
而不是沿着使用infobox
庫的路線(我發現有一匹母馬可以與gmap3庫一起工作),我決定通過綁定標記點擊事件來產生一個我可以設計的覆蓋圖然而我想要的。
所以,我對像這樣
// JSON
var data = JSON.parse('[
{
"address":"New Street, Salisbury, UK",
"content":"hello world from salisbury"
},
{
"address":"86000 Poitiers, France" ,
"content":"hello world from poitiers"
},
{
"address":"66000 Perpignam, France",
"content":"hello world from perpignam"
}
]');
設置我的GMAP默認
// Gmap Defaults
$map.gmap3({
map:{
options:{
center:[46.578498,2.457275],
zoom: 5
}
}
});
我依次通過我的JSON我用我所有的地址JSON和建立映射
// Json Loop
$.each(data, function(key, val) {
$map.gmap3({
marker:{
values:[{
address:val.address,
events: {
click: function() {
gmap_clear_markers();
$(this).gmap3({
overlay:{
address:val.address,
options:{
content: '<div class="infobox">'+val.content+'</div>',
offset:{
y:-32,
x:12
}
}
}
});
}
}
}]
}
});
});
gmap_clear_markers()
函數觸發所有其他信息框(覆蓋)實例被刪除。
// Function Clear Markers
function gmap_clear_markers() {
$('.infobox').each(function() {
$(this).remove();
});
}
現在,我想我的JSON,我可以添加儘可能多的地址,它會與剛帶班的信息框一個普通的div包裝,我可以相應風格的信息框。
我不確定這是否是最好的方法 - 我只是說這對我有用。
這裏是JSFIDDLE example