Способы отображения данных с помощью OpenLayers
-
- Bot
- Сообщения: 276
- Зарегистрирован: 03 фев 2008, 23:13
- Репутация: 3
Способы отображения данных с помощью OpenLayers
Обсуждение статьи "Способы отображения данных с помощью OpenLayers"
http://gis-lab.info/qa/ol-load.html
http://gis-lab.info/qa/ol-load.html
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Способы отображения данных с помощью OpenLayers
Обновление 06.02.2009: добавлен пример вектор+google с учетом системы координат, по мотивам
пристегивайтесь, турбулентность прямо по курсу
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Способы отображения данных с помощью OpenLayers
В разделе 2 "Отображение слоя WMS" не отображается карта.
Spatial is now, more than ever, just another column- The Geometry Column.
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Способы отображения данных с помощью OpenLayers
Параметр
Текущие рекомендации выглядят так. Создаем карту:
Подключаем Google Maps и слой WMS:
Обратите внимание, если для layer_goo не указать "sphericalMercator: true", то слой внешне будет работать правильно. Но layer_wms показывать ничего не будет. Дело в том, что при этом на wms-сервер отправляются запросы с SRS=epsg:900913, а BBOX рассчитывается как для epsg:4326.
в версии 2.8 признан устаревшим, т.к. большинство серверов WMS уже умеют сами выдавать тайлы в EPSG:900913 (пруфлинк не привожу, комментарий дан в тексте файла wms.js).reproject: true
Текущие рекомендации выглядят так. Создаем карту:
Код: Выделить всё
map = new OpenLayers.Map('map', {
projection: new OpenLayers.Projection('EPSG:900913'),
units: 'm',
maxResolution: 156543.0339,
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
});
Код: Выделить всё
var layer_goo = new OpenLayers.Layer.Google('Google Map',
{type: G_NORMAL_MAP, sphericalMercator: true}
);
var layer_wms = new OpenLayers.Layer.WMS('wms',
url_server + '/geoserver/wms/',
{layers: 'mylayer'},
);
лангольеры под окном жрали время ом-ном-ном
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Способы отображения данных с помощью OpenLayers
Google Maps V3 for OpenLayers (применительно к OpenLayers 2.10)
- Больше не требуется получать персональный ключ (API key).
- Типы слоев переименовали (G_PHYSICAL_MAP -> google.maps.MapTypeId.TERRAIN).
- OpenLayers.Map автоматически настраивается на сферический меркатор (EPSG:900913), экстент, ед. измерения и список расширений (масштабов)
Последний раз редактировалось Mavka 05 ноя 2010, 17:36, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном
-
- Активный участник
- Сообщения: 178
- Зарегистрирован: 16 июл 2008, 09:56
- Репутация: 1
- Откуда: Москва
Re: Способы отображения данных с помощью OpenLayers
Одна беда - всё ещё для коммерческого применения надо покупать лицензию...
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Способы отображения данных с помощью OpenLayers
Глянул один свой старый проект и увидел что слой Google показывает большое некрасивое окно "Данные карты". Типа этого:
Решается это так. В коде карты ничего не меняем:
А в импорте библиотеки нужно явно указать версию:
Было - <script src="http://maps.google.com/maps/api/js?sens ... "></script>
Стало - <script src="http://maps.google.com/maps/api/js?v=3.2&sensor=false"></script>
Решается это так. В коде карты ничего не меняем:
Код: Выделить всё
var lay_goo = new OpenLayers.Layer.Google('Google Streets',
{numZoomLevels: 20, sphericalMercator: true}
);
Было - <script src="http://maps.google.com/maps/api/js?sens ... "></script>
Стало - <script src="http://maps.google.com/maps/api/js?v=3.2&sensor=false"></script>
Последний раз редактировалось Mavka 05 сен 2011, 08:46, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Способы отображения данных с помощью OpenLayers
Проблема опять объявилась и указание версии ее не решает, перебил в стилях на
Пока работает. Вроде бы в рассылке уверяли что в транке все исправлено, но подтверждения не нахожу.
Код: Выделить всё
.olLayerGoogleCopyright {
visibility: hidden;
}
лангольеры под окном жрали время ом-ном-ном
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Способы отображения данных с помощью OpenLayers
Ticket #2984 - решение аналогичное. Или качаем trunk и пользуемся готовым. К тому же там появился нормальный Bing (но нужен ключ), а то Virtual Earth я так и не смог заставить работать.
лангольеры под окном жрали время ом-ном-ном
-
- Интересующийся
- Сообщения: 26
- Зарегистрирован: 09 ноя 2011, 14:02
- Репутация: 0
Re: Способы отображения данных с помощью OpenLayers
Во втором и третьем примере розовые квадраты.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Способы отображения данных с помощью OpenLayers
Исправил.native писал(а):Во втором и третьем примере розовые квадраты.
Spatial is now, more than ever, just another column- The Geometry Column.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Способы отображения данных с помощью OpenLayers
Еще, свойство reproject, описываемое в данной статье на текущий день является Deprecated. Актуальный подход описан тут.
Spatial is now, more than ever, just another column- The Geometry Column.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей