Применять пользовательский стиль карты Google в OpenLayers2?

10

Недавно я наткнулся на эту интересную статью, демонстрирующую потенциал добавления пользовательских стилей в Google Maps. Некоторые примеры стилизованных карт можно увидеть здесь, и вы можете создать свой собственный с нуля здесь .

Я хотел бы применить тему «greyscale» к моей базовой карте OpenLayers: введите описание изображения здесь

Описание стиля по демоверсии Google будет выглядеть примерно так:

var styles = {
  'Greyscale': [
    {              
      featureType: 'all',
      rules: [
        {saturation: -100},
        {gamma: 0.50}
      ]
    }
  ]
}

Моя карта Google в OpenLayers в настоящее время выглядит просто так:

var gmap = new OpenLayers.Layer.Google("Google Streets",
    {
    'numZoomLevels': 20,
    'sphericalMercator': true}
);

Как я могу применить тему серого к моей карте?

Радек
источник
Google Maps Colorizr googlemapscolorizr.stadtwerk.org может быть полезен, если вы хотите определить свои собственные определенные цвета.
Радек
Некоторые примеры игры с цветами: 41latitude.com/post/1268734799/google-styled-maps
radek
Не хотите отпустить щедрость? :) Я думаю, что Симо понял
Раги Язер Бурхум
Верно. Еще три дня соревнований, хотя;]
Радек

Ответы:

20

Кажется, что вы можете напрямую получить доступ к объекту googlemap, используя layer.mapObject .

Для стилизации слоя обратитесь к API gmap: https://developers.google.com/maps/documentation/javascript/styling

Вот небольшая примерная страница, которую я создал: http://www.intermezzo-coop.eu/mapping/styled_gmap.html

Смотрите также мастер googlemap: https://mapstyle.withgoogle.com/.

Симо
источник
У тебя получилось, Радек?
Симо
@simo: я не совсем уверен, как использовать 'layer.mapObject'
radek
1
@radek; вам нужно будет создать собственный JS для определения стиля вашей карты; На второй ссылке есть несколько хороших примеров, которые покажут вам очень хороший поток.
DEWright
1
@radek: я не тестировал его, но, полагаю, вы создаете свой слой gmap следующим образом: var glayer = new OpenLayers.Layer.Google (параметры) , затем создаете свой стиль с использованием синтаксиса Gmap и, наконец, применяете его, используя glayer.mapObject.mapTypes .set («хип-хоп», jayzMapType); см. приведенный пример выше. Если у меня будет немного времени, я постараюсь сделать это и дам вам знать
simo
4
@radek: здесь мы идем empreinte-urbaine.eu/mapping/styled_gmap.html
Simo