Способы отображения данных с помощью OpenLayers

Обсуждение материалов сайта: вопросы, замечания, предложения
Ответить
updates-bot
Bot
Сообщения: 276
Зарегистрирован: 03 фев 2008, 23:13
Репутация: 3

Способы отображения данных с помощью OpenLayers

Сообщение updates-bot » 16 янв 2009, 06:13

Обсуждение статьи "Способы отображения данных с помощью OpenLayers"

http://gis-lab.info/qa/ol-load.html

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 8902
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 642
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Способы отображения данных с помощью OpenLayers

Сообщение Максим Дубинин » 07 фев 2009, 06:26

Обновление 06.02.2009: добавлен пример вектор+google с учетом системы координат, по мотивам
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3308
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 488
Ваше звание: Author
Контактная информация:

Re: Способы отображения данных с помощью OpenLayers

Сообщение Denis Rykov » 31 авг 2009, 01:08

В разделе 2 "Отображение слоя WMS" не отображается карта.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: Способы отображения данных с помощью OpenLayers

Сообщение Mavka » 28 фев 2010, 18:49

Параметр
reproject: true
в версии 2.8 признан устаревшим, т.к. большинство серверов WMS уже умеют сами выдавать тайлы в EPSG:900913 (пруфлинк не привожу, комментарий дан в тексте файла wms.js).

Текущие рекомендации выглядят так. Создаем карту:

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

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),
}); 
Подключаем Google Maps и слой WMS:

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

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'},
); 
Обратите внимание, если для layer_goo не указать "sphericalMercator: true", то слой внешне будет работать правильно. Но layer_wms показывать ничего не будет. Дело в том, что при этом на wms-сервер отправляются запросы с SRS=epsg:900913, а BBOX рассчитывается как для epsg:4326.
лангольеры под окном жрали время ом-ном-ном

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: Способы отображения данных с помощью OpenLayers

Сообщение Mavka » 10 июл 2010, 14:57

Google Maps V3 for OpenLayers (применительно к OpenLayers 2.10)
  1. Больше не требуется получать персональный ключ (API key).
  2. Типы слоев переименовали (G_PHYSICAL_MAP -> google.maps.MapTypeId.TERRAIN).
  3. OpenLayers.Map автоматически настраивается на сферический меркатор (EPSG:900913), экстент, ед. измерения и список расширений (масштабов)
Устаревшая версии API v2 будет поддерживаться еще 3 года (Terms of Service, 4.4 Termination of the Service).
Последний раз редактировалось Mavka 05 ноя 2010, 17:36, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном

Konstantin Tokar
Активный участник
Сообщения: 177
Зарегистрирован: 16 июл 2008, 09:56
Репутация: 0
Откуда: Москва

Re: Способы отображения данных с помощью OpenLayers

Сообщение Konstantin Tokar » 10 июл 2010, 16:46

Одна беда - всё ещё для коммерческого применения надо покупать лицензию...

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: Способы отображения данных с помощью OpenLayers

Сообщение Mavka » 14 мар 2011, 11:13

Глянул один свой старый проект и увидел что слой Google показывает большое некрасивое окно "Данные карты". Типа этого:
Изображение

Решается это так. В коде карты ничего не меняем:

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

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
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: Способы отображения данных с помощью OpenLayers

Сообщение Mavka » 02 июл 2011, 00:28

Проблема опять объявилась и указание версии ее не решает, перебил в стилях на

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

.olLayerGoogleCopyright {
    visibility: hidden;
} 
Пока работает. Вроде бы в рассылке уверяли что в транке все исправлено, но подтверждения не нахожу.
лангольеры под окном жрали время ом-ном-ном

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: Способы отображения данных с помощью OpenLayers

Сообщение Mavka » 02 июл 2011, 15:23

Ticket #2984 - решение аналогичное. Или качаем trunk и пользуемся готовым. К тому же там появился нормальный Bing (но нужен ключ), а то Virtual Earth я так и не смог заставить работать.
лангольеры под окном жрали время ом-ном-ном

native
Интересующийся
Сообщения: 26
Зарегистрирован: 09 ноя 2011, 14:02
Репутация: 0

Re: Способы отображения данных с помощью OpenLayers

Сообщение native » 29 ноя 2011, 09:42

Во втором и третьем примере розовые квадраты.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3308
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 488
Ваше звание: Author
Контактная информация:

Re: Способы отображения данных с помощью OpenLayers

Сообщение Denis Rykov » 29 ноя 2011, 12:50

native писал(а):Во втором и третьем примере розовые квадраты.
Исправил.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3308
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 488
Ваше звание: Author
Контактная информация:

Re: Способы отображения данных с помощью OpenLayers

Сообщение Denis Rykov » 29 ноя 2011, 13:43

Еще, свойство reproject, описываемое в данной статье на текущий день является Deprecated. Актуальный подход описан тут.
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

Вернуться в «Материалы сайта»