ruby-on-rails ruby-on-rails-4 gmaps4rails gmaps4rails2

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.....