Признаться, я не читал всего, что вы тут понаписали, но почему не сделать как-то так?
var map = "null";
var lat = 54.6786609;
var lng = 25.3077807;
function launchGMap(container, center, options) {
if (typeof container === 'string') {
container = document.querySelector(container);
}
if (Array.isArray(center)) {
center = new google.maps.LatLng(center[0], center[1]);
}
return new google.maps.Map(container, Object.assign({}, {
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles: [{
stylers: [{
saturation: -100,
}],
}],
zoom: 30,
}, options || {}));
}
function myMap() {
return map = launchGMap('#map', [51.508742, -0.120850]);
}
document.getElementById('showMap').addEventListener('shown.bs.modal', function() {
modalmaped = launchGMap('#new-map', [lat, lng]);
var bounds = new google.maps.LatLngBounds();
bounds.extend(new google.maps.LatLng(lat, lng));
if (modalmaped != null) {
modalmaped.fitBounds(bounds);
modalmaped.setZoom(30);
}
});