Вы можете сделать это легко, если используете карты Google!
Что вам нужно сделать, это скопировать исходный код сценария openlayers.js в общедоступный каталог, например, public/js/openlayers.js
. Сценарий минимизирован. Вам нужно открыть его и найти, где написано google.maps.Map
и унифицировать это утверждение, добавив в него разрывы, где это необходимо (это просто делает его более читабельным). Затем вам нужно добавить свойство стилей ко второму аргументу. Некоторые варианты стиля можно найти бесплатно на этом сайте:
https://snazzymaps.com/explore
В конце у вас должен быть такой раздел в настроенном вами файле openlayers.js:
google.maps.Map(b,{
center:a?new google.maps.LatLng(a.lat,a.lon):new google.maps.LatLng(0,0),
zoom:this.map.getZoom()||0,
mapTypeId:this.type,
disableDefaultUI:!0,
keyboardShortcuts:!1,
draggable:!1,
disableDoubleClickZoom:!0,
scrollwheel:!1,
streetViewControl:!1,
styles: [{"featureType":"road","stylers":[{"hue":"#5e00ff"},{"saturation":-79}]},{"featureType":"poi","stylers":[{"saturation":-78},{"hue":"#6600ff"},{"lightness":-47},{"visibility":"off"}]},{"featureType":"road.local","stylers":[{"lightness":22}]},{"featureType":"landscape","stylers":[{"hue":"#6600ff"},{"saturation":-11}]},{},{},{"featureType":"water","stylers":[{"saturation":-65},{"hue":"#1900ff"},{"lightness":8}]},{"featureType":"road.local","stylers":[{"weight":1.3},{"lightness":30}]},{"featureType":"transit","stylers":[{"visibility":"simplified"},{"hue":"#5e00ff"},{"saturation":-16}]},{"featureType":"transit.line","stylers":[{"saturation":-72}]},{}]
}),
Недостатком здесь является то, что если API Google и / или скрипт openlayers.js когда-либо изменятся, вы рискуете сломать карту, так как у вас есть статическая копия скрипта. Я считаю, что это редкое событие, и это небольшая цена за более красивую карту.