我正在尝试显示多个地图,就像在v1中一样,如下所述:https://github.com/apneadiving/Google-Maps-for-Rails/wiki/(Multiple)-Maps。
我使用唯一ID('map_n',其中n是)显示所有地图,但所有标记都显示在最后一个上。 这是我的“_map.haml”部分中的代码:
- map_id = 'map' << "_#{counter}"
.map_container
.gmaps4rails_map{ id: map_id }
:javascript
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: { id: '#{ map_id }' } }, function(){
markers = handler.addMarkers([
{
"lat": 0,
"lng": 0,
"infowindow": "hello!"
}
]);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(12);
});
处理此问题的正确方法是什么?
答案 0 :(得分:3)
您只需要为每个地图创建一个处理程序及其专用ID
在重新阅读您的问题之后,由于变量可见性,我认为这是一个问题:
所以:
或者:
答案 1 :(得分:0)
我选择按照apneadiving的建议将所有内容包装在一个函数中。
:javascript
$(function(handler) {
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: { id: '#{ map_id }' } }, function(){
markers = handler.addMarkers([
{
"lat": 0,
"lng": 0,
"infowindow": "hello!"
}
]);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(12);
});
});