Страница 1 из 1

Openlayer смена base layer

Добавлено: 12 янв 2012, 03:08
iErroRi
Здравствуйте

Есть карта города привязанная к EPSG:4326, в Openlayer загружается 3 слоя Google, кварталы, дома.
Включен контрол LayerSwitcher. Там собственно 2 Основных слоя Google, кварталы. С Google слоем все нормально, дома отображаются на своих местах. Если переключится на кварталы карта исчезает тайлы грузятся белыми.

Настройки карты для гугла:

Код: Выделить всё

        var options = {
          controls: [],
          tileSize: new OpenLayers.Size(256,256),
          maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
          maxResolution: 156543.0399,
          numZoomLevels: 19,
          units: 'm',
          projection: new OpenLayers.Projection("EPSG:4326"),
          displayProjection: new OpenLayers.Projection("EPSG:4326")
        };
Если указать:

Код: Выделить всё

maxExtent: new OpenLayers.Bounds(113.185287475586,51.9441452026367,113.642135620117,52.1663818359375),
maxResolution: 0.17578125,
Карта с кварталами отображается нормально. Если переключится на гугл то карта как бы застревает в океане рядом с Африкой.

Как сделать?) При переключении слоев пересоздать карту с новыми опциями?

Re: Openlayer смена base layer

Добавлено: 12 янв 2012, 05:11
Aleksandr Dezhin
Вам нужно перепроецировать ваши кварталы и дома в EPSG:900913, т.к. именно в этой проекции работает google maps. То есть тайлы гугл отдает только в одной проекции.

Код: Выделить всё

          maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
          ..
          projection: new OpenLayers.Projection("EPSG:4326"),
Также maxExtent и projection так же должны соответствовать друг другу. Сейчас же у вас что-то странное, maxExtent скорее всего в EPSG:900913, а projection EPSG:4326

Re: Openlayer смена base layer

Добавлено: 24 янв 2012, 02:05
iErroRi
Спасибо :)

Код: Выделить всё

          projection: new OpenLayers.Projection("EPSG:900913"),
          displayProjection: new OpenLayers.Projection("EPSG:900913")
Помогло.