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

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

Добавлено: 16 янв 2009, 06:13
updates-bot
Обсуждение статьи "Способы отображения данных с помощью OpenLayers"

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

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

Добавлено: 07 фев 2009, 06:26
Максим Дубинин
Обновление 06.02.2009: добавлен пример вектор+google с учетом системы координат, по мотивам

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

Добавлено: 31 авг 2009, 01:08
Denis Rykov
В разделе 2 "Отображение слоя WMS" не отображается карта.

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

Добавлено: 28 фев 2010, 18:49
Mavka
Параметр
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.

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

Добавлено: 10 июл 2010, 14:57
Mavka
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).

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

Добавлено: 10 июл 2010, 16:46
Konstantin Tokar
Одна беда - всё ещё для коммерческого применения надо покупать лицензию...

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

Добавлено: 14 мар 2011, 11:13
Mavka
Глянул один свой старый проект и увидел что слой 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>

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

Добавлено: 02 июл 2011, 00:28
Mavka
Проблема опять объявилась и указание версии ее не решает, перебил в стилях на

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

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

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

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

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

Добавлено: 29 ноя 2011, 09:42
native
Во втором и третьем примере розовые квадраты.

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

Добавлено: 29 ноя 2011, 12:50
Denis Rykov
native писал(а):Во втором и третьем примере розовые квадраты.
Исправил.

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

Добавлено: 29 ноя 2011, 13:43
Denis Rykov
Еще, свойство reproject, описываемое в данной статье на текущий день является Deprecated. Актуальный подход описан тут.