Я использовал GEM Named: gmaps4rails, который делает идеальную работу, но проблема в том, что я не могу сосредоточить свою карту. Его показ в самом углу.Невозможно установить центр карты в бутстрап вертикальные вкладки
Что я хочу сделать, показать карту, имеющую MASSACHUSETTS в качестве центра с количеством контактов в ней.
Я также использую вкладки, в которые они загружаются сейчас, но не смог понять, как я могу настроить его, чтобы установить его с помощью MASSACHUSETTS.
Вот мой код:
<script src="https://maps.googleapis.com/maps/api/js?key=KEYGOESHERE" type="text/javascript"></script>
<script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
<script src='//cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/infobox/src/infobox_packed.js' type='text/javascript'></script>
<script>
$(document).ready(function() {
var map_center = new google.maps.LatLng('42.0574342', '-72.8422761');
var handler = Gmaps.build('Google');
handler.buildMap({
provider: {
disableDefaultUI: true,
zoomControl: true,
zoom: 12,
center: map_center
},
internal: {
id: 'map'
}
},
function() {
var markers = handler.addMarkers(<%=raw @retailers.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
}
);
$('.nav-tabs').on('shown.bs.tab', function() {
google.maps.event.trigger(window, 'resize', {});
var reCenter = new google.maps.LatLng('42.0574342', '-72.8422761');
handler.setCenter(reCenter);
});
});
</script>
И Div:
<div style='width: 825px; height: 350px;'>
<div id="map" style='width: 825px; height: 350px;'></div>
</div>
Вот пример ПИК:
Вот демо:
var map_center = new google.maps.LatLng(42.0574342, -72.8422761);
var handler = Gmaps.build('Google');
handler.buildMap({
provider: {
disableDefaultUI: true,
zoomControl: true,
zoom: 12,
center: map_center
},
internal: {
id: 'map'
}
},
function() {
var markers = handler.addMarkers([{
"lat": "42.3420564",
"lng": "-71.1377384",
"marker_title": "BRIX Wine Shop"
}, {
"lat": "42.3484068",
"lng": "-71.1563419",
"marker_title": "Bauer Wine \u0026 Spirits"
}, {
"lat": "42.3560102",
"lng": "-71.1275915",
"marker_title": "Boston Wine Exchange"
}, {
"lat": "42.3484068",
"lng": "-71.1563419",
"marker_title": "Bauer Wine \u0026 Spirits"
}]);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
}
);
$('.nav-tabs').on('shown.bs.tab', function() {
google.maps.event.trigger(window, 'resize', {});
var reCenter = new google.maps.LatLng(42.0574342, -72.8422761);
handler.setCenter(reCenter);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBVGMRkZg8rFSxoUspEiZmnaMRqT3WO8wU" type="text/javascript"></script>
<script src="https://raw.githubusercontent.com/HPNeo/gmaps/master/gmaps.js"></script>
<script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
<div style='width: 825px; height: 350px;'>
<div id="map" style='width: 825px; height: 350px;'></div>
</div>
не может быть идеальным решением, но попробуйте обернуть 'setCenter()' в 'setTimout()' – charlietfl
Не могли бы вы опубликовать код, как я должен? Я считаю, что это не тот случай, но может быть и его. – LearningROR
'setTimeout (функция() {handler.setCenter (reCenter)}, 50);' – charlietfl