OpenLayers: не получается задать правильный охват

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

OpenLayers: не получается задать правильный охват

Сообщение Voltron »

Необходимо отобразить слой с сервиса Kosmosnimki.ru в OpenLayers. Слой отдаётся через подобие TMS в EPSG:3395. Известен охват слоя в EPSG:4326, но при попытке вписать в maxExtent это охват, трансформированный в EPSG:3395 получаю пустую страницую
URL слоя

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

http://maps.kosmosnimki.ru/TileService.ashx?Request=gettile&layerName=762F4DD7378243BEA52E74D7DC575A84&apikey=L5VW1QBBHJ&crs=epsg:3395&z=${z}&x=${x}&y=${y}
BBOX слоя

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

<BoundingBox CRS="EPSG:4326" minx="37.5287837756839" miny="55.7157018440489" maxx="37.5905806807989" maxy="55.8564405658025"/>
Файл с картой
test.tar.bz2
(44.22 КБ) 263 скачивания
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: OpenLayers: не получается задать правильный охват

Сообщение Denis Rykov »

Вроде удалось отобразить указанный слой, вот демо.
Spatial is now, more than ever, just another column- The Geometry Column.
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: OpenLayers: не получается задать правильный охват

Сообщение Voltron »

Спасибо! Похоже на требуемый результат, буду разбираться
Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: OpenLayers: не получается задать правильный охват

Сообщение Voltron »

Т.к. мне нужен только один слой, убрал в коде загрузку подложки OSM, сделал второй слой основным и теперь он не загружается. Что сломал, куда копать?
Код выглядит так

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

            options = {
                div: "map",
                projection: "EPSG:3857",
                layers: [
                    new OpenLayers.Layer.XYZ(
                        "Съемка GeoEye",
                        "http://maps.kosmosnimki.ru/TileService.ashx?Request=gettile&layerName=762F4DD7378243BEA52E74D7DC575A84&apikey=L5VW1QBBHJ&crs=epsg:3857&z=${z}&x=${x}&y=${y}",
                         {
                             isBaseLayer: true,
                             tileOrigin : new OpenLayers.LonLat(-20037508.34, 20037508.34),
                             maxExtent: scanex.bounds_proj,
                             getXYZ: scanex.getXYZ,
                         }
                    )
                ]
            };
            map = new OpenLayers.Map(options);
            map.addControl(new OpenLayers.Control.LayerSwitcher());
            map.zoomToExtent(scanex.bounds_proj);
        }
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: OpenLayers: не получается задать правильный охват

Сообщение Denis Rykov »

Обновил пример.
Spatial is now, more than ever, just another column- The Geometry Column.
Tink
Участник
Сообщения: 50
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 4

Re: OpenLayers: не получается задать правильный охват

Сообщение Tink »

А не подскажите что делать когда kosmosnimki.ru не отдают тайлы за пределами, например, области (см. теме Layer.OSM избавиться от "пустых" тайлов). Как избавиться от "пустых" тайлов?

Другими словами, я хочу сказать, что когда в слое запрашиваемом у kosmosnimki.ru растр, покрывающий только одну область (не важно какую, - хоть Москву, хоть какую-то деревушку), то за пределами растра куча значков "нет изображения", т.е. kosmosnimki.ru отдает только те тайлы в которые попадает этот растр.

Можно как-то заставить OpenLayers не грузить эти тайлы ?
Отдельным запросом, согласно документации kosmosnimki.ru можно запросить список слоев доступных по тому или иному ключу. С описанием слоя вроде бы есть атрибуты такого вида:
Спойлер
<EX_GeographicBoundingBox>
<westBoundLongitude>
47.11
</westBoundLongitude>
<eastBoundLongitude>
49.92
</eastBoundLongitude>
<southBoundLatitude>
43.43
</southBoundLatitude>
<northBoundLatitude>
44.06
</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326" minx="47.11" miny="43.43" maxx="49.92" maxy="44.06"/>
Возможно это границы растра на карте, но не понятно как заставить OpenLayers не запрашивать "лишние" ( "пусты" ) тайлы...
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя