ruby on rails - Gmaps4rails V2-cambia el zoom predeterminado
ruby-on-rails ruby-on-rails-4 (3)
Soy un completo novato, construyendo mi primera aplicación de rieles. Implementé satisfactoriamente Google-maps-for-rails V2, utilizando el tutorial de apneadiving en youtube: http://www.youtube.com/watch?v=R0l-7en3dUw&feature=youtu.be
Mi problema es que para cada uno de mis mapas, solo estoy mostrando un marcador, y cuando se carga el mapa, se ajusta para tener el zoom completo.
Buscando alrededor, parece que hay muchas soluciones para versiones anteriores de Gmaps4rails, pero con V2 y creando el mapa a través de javascript, parece que no puedo encontrar una solución que funcione.
Como referencia, mi código está a continuación:
Ver:
<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>
Controlador:
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
Traté de hacer cambios a través de la consola usando: gmap.setzoom (12), como lo sugirió alguna publicación, pero no he tenido suerte con eso.
Cualquier ayuda es muy apreciada
Respuesta que funcionó para mí: cambiar la vista a:
<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>
¡Gracias por la ayuda!
Otra opción es usar handler.map.centerOn (marcador):
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);
}
);
retirar:
handler.fitMapToBounds();
Reemplazar con:
handler.getMap().setZoom(yourValue);
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>
O
handler.getMap().setZoom(yourValue);
Deberia de funcionar.....