Mapserver визуализация

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Malig
Участник
Сообщения: 66
Зарегистрирован: 04 сен 2012, 11:28
Репутация: 0

Mapserver визуализация

Сообщение Malig » 19 сен 2012, 07:38

Есть геометрия трассы, представленная полигонами в PostGis.
Отрисовываю трассу так:

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

STYLE
                        COLOR        5 115 253
                        OUTLINECOLOR 254 5 34
                        WIDTH        2
                        ANTIALIAS TRUE
          END
Возникают следующие вопросы:

1. Как избавиться от каймы в местах стыков полигонов, чтобы трасса была равномерной
2. Чисто визуально ANTIALIAS TRUE, ничего не дает. Мб он не работает..... Хотя устанавливаю все по официальной доке.

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

IMAGETYPE	PNG24

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

                TRANSPARENCY ALPHA
                
                CLASS
                    NAME       "Ось дороги"
                    STYLE
                        COLOR        5 115 253
                        OUTLINECOLOR 254 5 34
                        WIDTH        2
                        ANTIALIAS TRUE
                    END
                END
,
mapserver.exe -v показывать supports=AGG
3. Можно ли при разных масштабах, по-разному отрисовывать?
4. Мб есть другие, более гибкие средства для рисования дорог по геометрии?

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

Re: Mapserver визуализация

Сообщение Denis Rykov » 19 сен 2012, 08:38

1,2 - покажите примеры
3 - можно
4 - дорог по геометрии? а по чему еще можно рисовать?
Spatial is now, more than ever, just another column- The Geometry Column.

Malig
Участник
Сообщения: 66
Зарегистрирован: 04 сен 2012, 11:28
Репутация: 0

Re: Mapserver визуализация

Сообщение Malig » 19 сен 2012, 08:58

example.png
example.png (40.53 КБ) 8863 просмотра
Как убрать пересекающиеся белые каёмки?

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Mapserver визуализация

Сообщение ericsson » 19 сен 2012, 09:38

Если посмотреть сюда http://mapserver.org/mapfile/style.html то там находится следующее:
ANTIALIAS [true|false]
Should TrueType fonts be antialiased. Only useful for GD (gif) rendering. Default is false. Has no effect for the other renderers (where anti-aliasing can not be turned off).
А outline в таком случае вообще использовать не надо - смотрите примеры тут
http://mapserver.org/mapfile/symbology/ ... ne-symbols

Malig
Участник
Сообщения: 66
Зарегистрирован: 04 сен 2012, 11:28
Репутация: 0

Re: Mapserver визуализация

Сообщение Malig » 19 сен 2012, 11:52

Благодарю за ответ, что-то стало вырисовываться...
Как еще при разных масштабах, по-разному отрисовывать?

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

Re: Mapserver визуализация

Сообщение Denis Rykov » 19 сен 2012, 11:54

Подсистема управления стилями в MapServer по крайней мере на мой взгляд - это какой-то костыль. Лучше использовать SLD, MapSerever его понимает. (Решение "в лоб" - отрисовать слой сначала как TYPE line и задать толщину линии WIDTH, а поверх него отрисовать тот же слой как TYPE polygon). Как подготовить описание SLD - это отдельный вопрос. Оффтоп: у меня тут в соседнем окне открыт TileMill - так вот там это выполняется очень просто, см. скриншот.
Вложения
tilemill.png
tilemill.png (51.87 КБ) 8844 просмотра
Spatial is now, more than ever, just another column- The Geometry Column.

Malig
Участник
Сообщения: 66
Зарегистрирован: 04 сен 2012, 11:28
Репутация: 0

Re: Mapserver визуализация

Сообщение Malig » 20 сен 2012, 12:37

А как центроид полигона найти?

В PostGis запрос

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

select ST_Centroid(the_geom) from mytable

работает

А как из map-файла это сделать? Уже по-всякому пробовал, не выходит.
Query error и все тут

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

Re: Mapserver визуализация

Сообщение Denis Rykov » 20 сен 2012, 13:55

Если вы хотите в map-файле извлекать данные из PistGIS, то в секции DATA нужно написать как-то так:

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

DATA "geom from (SELECT ST_Centroid(the_geom) AS geom FROM mytable) AS query using unique id using srid=4326"
Но лучше бы создать в базе отдельную вьюшку и не дёргать постоянно PostGIS.
Spatial is now, more than ever, just another column- The Geometry Column.

Malig
Участник
Сообщения: 66
Зарегистрирован: 04 сен 2012, 11:28
Репутация: 0

Re: Mapserver визуализация

Сообщение Malig » 21 сен 2012, 07:08

Попробовал, вот что пишет:

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

msDrawMap(): Image handling error. Failed to draw layer named 'azs'.
msPostGISLayerWhichShapes(): Query error. Error executing query: ОШИБКА:  колонка "id" не существует
LINE 1: ...sBinary(ST_Force_2D("geom"),'NDR'),'hex') as geom,"id" from ...

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

Re: Mapserver визуализация

Сообщение Denis Rykov » 21 сен 2012, 08:49

Поле первичного ключа в вашей таблице как называется?
Spatial is now, more than ever, just another column- The Geometry Column.

Malig
Участник
Сообщения: 66
Зарегистрирован: 04 сен 2012, 11:28
Репутация: 0

Re: Mapserver визуализация

Сообщение Malig » 21 сен 2012, 09:13

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

CONSTRAINT roadazs_pkey PRIMARY KEY (gid ),

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

Re: Mapserver визуализация

Сообщение Denis Rykov » 21 сен 2012, 10:09

Ну так и используйте его, я привёл пример для таблицы с первичным ключом id.
Spatial is now, more than ever, just another column- The Geometry Column.

Malig
Участник
Сообщения: 66
Зарегистрирован: 04 сен 2012, 11:28
Репутация: 0

Re: Mapserver визуализация

Сообщение Malig » 21 сен 2012, 10:30

С ним такая же ошибка

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

Re: Mapserver визуализация

Сообщение Denis Rykov » 21 сен 2012, 10:50

Значит что-то вы не так делаете, приведите в удобочитаемый вариант текст об ошибке может станет понятнее.
Spatial is now, more than ever, just another column- The Geometry Column.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Mapserver визуализация

Сообщение Александр Мурый » 21 сен 2012, 11:05

В переводе на UTF-8 ошибка звучит так:

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

msDrawMap(): Image handling error. Failed to draw layer named 'azs'. 
msPostGISLayerWhichShapes(): Query error. Error executing query: ОШИБКА:  колонка "id" не существует
LINE 1: ...sBinary(ST_Force_2D("geom"),'NDR'),'hex') as geom,"id" from ...
Редактор материалов, модератор форума

Ответить

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

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

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