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

Работа с произвольными областями (OpenLayers 3)

Добавлено: 22 мар 2016, 16:34
Cls
Доброго времени суток!
На сервер с PostGIS (debian 7, postgres версии 9.4.x) натравлена связка tilecache 2.11 + mapnik. В качестве клиентской обвески к серверу используется OpenLayers 3.14.x . Стили mapnik-а доведены до следующего состояния (скриншот):
Возникла необходимость в объединении нескольких отдельных областей, которые есть на карте, в единый объект с возможностью удаления всех внутренних границ объединённого участка. Посему, следующий вопрос:
1) Как это лучше организовать на уровне кода? Есть ли какие-нибудь примеры вживую?
2) Необходимо, чтобы эти области были кликабельны и активны (имеется в виду возможность изменения стилей области) при наведении курсора. Исходя из того, что карта представляет собой canvas, возникла идея отрисовать на нём дополнительный слой, опираясь на координаты области. Ну и, соответственно, на нём уже воротить всё, что требуется :) Не изобретается ли велосипед? Задача кажется достаточно типичной.
3) Попутно, вопрос в сторону: необходимо отобразить крупные города, в идеале - столицы регионов субъектов РФ. Среди объектов OSM есть только place с уточнением city для городов от 100000 чел., что не совсем применимо в моём случае. Есть ли способ отобразить только центры регионов РФ?
Заранее спасибо! :)

Upd: с городами разобрался, вопрос снят :)

Re: Работа с произвольными областями (OpenLayers 3)

Добавлено: 22 мар 2016, 19:20
Denis Rykov
Мало чего понял, как ваша возникшая необходимость связана с последующими вопросами? Какие объекты вы хотите объединять, если у вас тайлы?

Re: Работа с произвольными областями (OpenLayers 3)

Добавлено: 22 мар 2016, 21:27
Cls
Окей. Попробуем по шагам :)
Объединять необходимо визуально несколько областей в одну. Скажем, объединить Московскую, Тверскую и Нижегородскую область в одну, проведя по ним всем границу, как если бы это была одна область. Следующая задача - навесить на эту область обработку событий, стили и прочее. Например, сделать так, чтобы область подсвечивалась при наведении, чтобы при клике отображался попап или что-то навроде этого. Собственно, это всё.
Из более-менее похожего по части построения областей я вижу вот такое: http://openlayers.org/en/v3.14.2/exampl ... tyles.html . Но возможно ли такое построить на основе данных, получаемых от произвольной области?

Re: Работа с произвольными областями (OpenLayers 3)

Добавлено: 23 мар 2016, 06:08
Denis Rykov
Подготовить векторный слой и отобразить его поверх тайловой подложки, например, в виде векторных тайлов.

Re: Работа с произвольными областями (OpenLayers 3)

Добавлено: 23 мар 2016, 11:07
Cls
А как в таком случае получать все координаты границы области, по которой рисовать? Или же под подготовкой тайлов имеется в виду просто рисование их вручную и наложение поверх?

Re: Работа с произвольными областями (OpenLayers 3)

Добавлено: 23 мар 2016, 11:51
Denis Rykov
Зачем рисовать, у вас же в PostGIS-е вектор.

Re: Работа с произвольными областями (OpenLayers 3)

Добавлено: 23 мар 2016, 12:11
Cls
Да, но мне необходимы координаты границ, по которым рисовать полигоны.
Нарыл что-то вот такое: http://gis-lab.info/qa/rusbounds-rosreestr-gen.html . Соответственно, делаем GeoJSON источником данных и по полученным координатам рисуем области. Так?

Re: Работа с произвольными областями (OpenLayers 3)

Добавлено: 23 мар 2016, 12:17
Denis Rykov
Не понял, зачем что-то рыть, если все данные у вас уже есть, создайте в PostGIS новый слой с полигонами регионов, что вы привели, с помощью ST_Union объедините нужные - и дальше что хотите, то и делайте с этим вектором.