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

Как создать свой слой с помощью mapserver и добавить в GM/Ya

Добавлено: 05 окт 2009, 16:43
любитель
Доброго времени суток!
Извиняюсь, если теме сформулирована некорректно.
Подскажите пожалуйста новичку, как можно проще решить следующую задачу.

Есть Гугл и Яндекс карты, нужно на них(по выбору пользователя) отображать передвигающийся маркер, отмечать гео-зоны. У Гугл и Яндекс есть свое javascript API, которое позволяет работать с картой. Но можно ли, например, создать свой пустой слой с помощью mapservera, поверх этих карт и уже на этом слое производить манипуляции с маркером и т.д. Чтобы не надо было писать код для каждой из карт ??

В каком направлении двигаться, подскажите пожалуйста, а то от прочитанного уже голова пухнет :)

Спасибо!

Re: [GIS-сервер + javascript]

Добавлено: 06 окт 2009, 03:08
Максим Дубинин
для примера
http://gis-lab.info/qa/ms-gm.html

Re: Как создать свой слой с помощью mapserver и добавить в GM/Ya

Добавлено: 07 окт 2009, 09:03
Mavka
Что бы свободно менять карты с API от разных производителей, вам нужен слой абстрактного API. Пример такой библиотеки - Mapstraction, но в списке 11 поставщиков Яndex не числится. Тот же OpenLayers умеет работать с Google, Microsoft, OSM. Или писать дублирующийся код.

Чтобы создать подходящий слой WMS в UMN MapServer нужно знать систему координат карт. Для Google - это сферический меркатор (EPSG:900913 или EPSG:3857). Насколько помню, в Яndex СК другая.

Re: Как создать свой слой с помощью mapserver и добавить в GM/Ya

Добавлено: 12 окт 2009, 09:07
любитель
спасибо, начал разбираться с OpenLayers :)

мне нужно на слое отображать пройденные маршруты, использовать API OpenLayers для отрисовки линий не хочется, так как есть подозрение, что при длинных маршрутах браузер начнет тормозить. Можно ли с помощью Mapserver сгенерировать изображение маршрута (координаты лежат в БД) и вернуть в браузер уже в качестве картинки и с помощью OL отобразить поверх GM или YM ?

Re: Как создать свой слой с помощью mapserver и добавить в GM/Ya

Добавлено: 12 окт 2009, 09:26
Mavka
Можно. А можно на базе UMN MapServer поднять и WMS и WFS и посмотреть как будет вести себя OL.
Дело в том, что растр, представляющий 1 трэк будет вынужден генерировать множество пустых тайлов, тем не менее создающих трафик и требующих времени работы MapServer. Плюс могут проявиться проблемы с кэшированием, если трэк часто меняется.

Re: Как создать свой слой с помощью mapserver и добавить в GM/Ya

Добавлено: 14 окт 2009, 16:26
любитель
Mavka писал(а):Можно. А можно на базе UMN MapServer поднять и WMS и WFS и посмотреть как будет вести себя OL.
Дело в том, что растр, представляющий 1 трэк будет вынужден генерировать множество пустых тайлов, тем не менее создающих трафик и требующих времени работы MapServer. Плюс могут проявиться проблемы с кэшированием, если трэк часто меняется.
Уважаемый, Mavka, а не могли бы вы вкратце объяснить, как процесс отображения трека в виде рисунка(jpg или png) будет выглядеть ?
Как я понял нужно выполнить следующие действия:
1. Извлечь из базы данных координаты трека.
2. На основе этих данных создать .shp и .маp - файлы для mapservera
3. Обратиться к mapserverу, чтобы тот сгенерировал рисунок
4. Отправить в браузер пользователя готовый рисунок

Данный подход есть WMS - сервис ? а что тогда WFS на примере ? :)

Спасибо.

Re: Как создать свой слой с помощью mapserver и добавить в GM/Ya

Добавлено: 14 окт 2009, 16:31
Mavka
WFS:
3*. Обратиться к mapserverу, чтобы тот выбрал векторные объекты, попавшие в заданный регион (BBOX), и отправил их в OpenLayers в векторном виде (в формате GML).
4*. OpenLayers рисует в окне браузера эти объекты (линии, полигоны). В подробности не вдавался, но что то по типу SVG, VML или Canvas.

OpenLayers может и сам читать трэки из файла. Кажется, GeoJSON, KML и GML.

Re: Как создать свой слой с помощью mapserver и добавить в GM/Ya

Добавлено: 15 окт 2009, 13:23
любитель
Как создать map-файл документация есть...
Возник такой вопрос, как создать .shp (.dbf?, .prj?) файл, в котором будет храниться информация(географ. координаты точек) о треке ?

Спасибо.