WMS слои на план-схеме, масшатбирование и Google Maps

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
alex.leshy
Новоприбывший
Сообщения: 5
Зарегистрирован: 05 июл 2008, 08:23
Репутация: 0

WMS слои на план-схеме, масшатбирование и Google Maps

Сообщение alex.leshy » 05 июл 2008, 09:01

Коллеги!
У меня такая проблема: создано несколько слоев в GeoServer в системе координат EPSG:4326. С использованием OpenLayers не получается эти слои отобразить на плоскости, т.е. визуально объекты как бы "приплюснуты". Но, если эти WMS слои наложить на Google, то они отображаются именно в плоскости (но только при одном масштабе!).
При изменении масштаба WMS слои не отображаются и управление ими блокируется.
Вот кусочек кода клиента:

var bounds = new OpenLayers.Bounds(
60.5988502502441, 56.832691192627,
60.6119728088379, 56.8392524719238
);

var options = {
controls: [],
maxExtent: bounds,
maxResolution: 'auto',
units: 'degrees',
minZoomLevel: 3,
maxZoomLevel: 9,
numZoomLevels: 19
};
map = new OpenLayers.Map('map', options);
...
var gsat = new OpenLayers.Layer.Google(
"Google Satellite",
{type: G_SATELLITE_MAP}
);

var bld_overlay = new OpenLayers.Layer.WMS(
"WMS layer",
wms_srv_url,
{
layers: 'demo:border,demo:lands',
tiled: 'true',
transparent: 'TRUE'
},
{'reproject': true}
);
...
map.addLayers([gsat,bld_overlay]);


У меня два вопроса:
1. Как отобразить WMS слои в системе координат WGS84 на план-схеме без использования Google Maps?
2. Как отображать WMS слои (и управлять ими) на Google Maps при любом масштабе?

GeoServer 1.6.2, OpenLayers (rev.:4899), IE

ps: пробовал играться со sphericalMercator, использовал EPSG:900913, толку мало...

Спасибо!

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

Сообщение Максим Дубинин » 07 июл 2008, 02:33

что значит приплюснуты и почему по вашему это неправильно? возможно это и есть Geographic/WGS84?

см. для сравнения первую картинку вот здесь
http://gis-lab.info/docs/giscourse/08-coords.html
пристегивайтесь, турбулентность прямо по курсу

alex.leshy
Новоприбывший
Сообщения: 5
Зарегистрирован: 05 июл 2008, 08:23
Репутация: 0

Сообщение alex.leshy » 07 июл 2008, 05:11

Проблема исключительно в отображении данных пользователю. Данные отображаются в системе координат WGS84 (т.е. объекты расположены на сфере, это и есть "приплюснутость"), а пользователи привыкли работать с проекцией на плоскости (в MapInfo, например)... Так вот, наложение имеющихся слоев (в WGS84) на снимки Google приводит к нужному эффекту (визуально, объекты расположены на плоскости, на сколько я понял из статьи, азимутальная проекция). Но как мне добиться этого эффекта без Google? Настраивать проекцию?

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

Сообщение Максим Дубинин » 07 июл 2008, 05:25

просто в данном случае слово "проблема" не очень подходит :)
Но как мне добиться этого эффекта без Google? Настраивать проекцию?
Именно так, попросить GeoServer "отдавать" данные в нужной СК.
пристегивайтесь, турбулентность прямо по курсу

alex.leshy
Новоприбывший
Сообщения: 5
Зарегистрирован: 05 июл 2008, 08:23
Репутация: 0

Сообщение alex.leshy » 08 июл 2008, 15:51

в том то и дело, что "попросить отдать" не очень получается :)
на сколько я понимаю, это делается через настройку параметра displayProjection у объекта OpenLayers.Map

делаю так:

var options = {
controls: [],
maxExtent: bounds,
maxResolution: 'auto',
projection: "EPSG:4326",
displayProjection: "EPSG:28411",
units: 'm'
};
map = new OpenLayers.Map('map', options);

визуально ничего не меняется, такое ощущение, что displayProjection просто игнорируется...

Ответить

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

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

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