我是一个完整的菜鸟,构建我的第一个rails应用程序。我使用youtube上的apneadiving教程成功实现了Google-maps-for-rails V2:http://www.youtube.com/watch?v=R0l-7en3dUw&feature=youtu.be
我的问题是,对于我的每张地图,我只显示一个标记,当地图加载时,它会调整为完全缩放。
搜索周围,似乎有很多早期版本的Gmaps4rails的解决方案,但是使用V2,并通过javascript创建地图,我似乎无法找到有效的解决方案。
供参考,我的代码如下:
查看:
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
}); </script>
控制器:
def show
@pins = Pin.find(params[:id])
@hash = Gmaps4rails.build_markers(@pins) do |pin, marker|
marker.lat pin.latitude
marker.lng pin.longitude
end
end
我试图通过控制台使用:gmap.setzoom(12)进行更改,正如一些帖子所建议的那样,但是没有任何运气。
非常感谢任何帮助
对我有用的答案:将视图更改为:
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(12);
}); </script>
感谢您的帮助!
答案 0 :(得分:35)
删除:
handler.fitMapToBounds();
替换为:
handler.getMap().setZoom(yourValue);
答案 1 :(得分:0)
Just Try This,
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: { Zoom: 3 }, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
}); </script>
或强>
handler.getMap().setZoom(yourValue);
它应该工作.....
答案 2 :(得分:0)
另一种选择是使用handler.map.centerOn(marker):
handler = Gmaps.build('Google');
handler.buildMap({
provider: {
draggable: false,
Zoom: 15
},
internal: {
id: 'map'
}
},
function(){
marker = handler.addMarker(
{
"lat": lat,
"lng": lng,
"picture": {
"url": "https://addons.cdn.mozilla.net/img/uploads/addon_icons/13/13028-64.png",
"width": 36,
"height": 36
},
"infowindow": "hello!"
}
);
handler.map.centerOn(marker);
}
);