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

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

Добавлено: 19 сен 2012, 07:38
Malig
Есть геометрия трассы, представленная полигонами в 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. Мб есть другие, более гибкие средства для рисования дорог по геометрии?

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

Добавлено: 19 сен 2012, 08:38
Denis Rykov
1,2 - покажите примеры
3 - можно
4 - дорог по геометрии? а по чему еще можно рисовать?

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

Добавлено: 19 сен 2012, 08:58
Malig
example.png
example.png (40.53 КБ) 8862 просмотра
Как убрать пересекающиеся белые каёмки?

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

Добавлено: 19 сен 2012, 09:38
ericsson
Если посмотреть сюда 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

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

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

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

Добавлено: 19 сен 2012, 11:54
Denis Rykov
Подсистема управления стилями в MapServer по крайней мере на мой взгляд - это какой-то костыль. Лучше использовать SLD, MapSerever его понимает. (Решение "в лоб" - отрисовать слой сначала как TYPE line и задать толщину линии WIDTH, а поверх него отрисовать тот же слой как TYPE polygon). Как подготовить описание SLD - это отдельный вопрос. Оффтоп: у меня тут в соседнем окне открыт TileMill - так вот там это выполняется очень просто, см. скриншот.

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

Добавлено: 20 сен 2012, 12:37
Malig
А как центроид полигона найти?

В PostGis запрос

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

select ST_Centroid(the_geom) from mytable

работает

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

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

Добавлено: 20 сен 2012, 13:55
Denis Rykov
Если вы хотите в map-файле извлекать данные из PistGIS, то в секции DATA нужно написать как-то так:

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

DATA "geom from (SELECT ST_Centroid(the_geom) AS geom FROM mytable) AS query using unique id using srid=4326"
Но лучше бы создать в базе отдельную вьюшку и не дёргать постоянно PostGIS.

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

Добавлено: 21 сен 2012, 07:08
Malig
Попробовал, вот что пишет:

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

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 ...

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

Добавлено: 21 сен 2012, 08:49
Denis Rykov
Поле первичного ключа в вашей таблице как называется?

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

Добавлено: 21 сен 2012, 09:13
Malig

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

CONSTRAINT roadazs_pkey PRIMARY KEY (gid ),

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

Добавлено: 21 сен 2012, 10:09
Denis Rykov
Ну так и используйте его, я привёл пример для таблицы с первичным ключом id.

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

Добавлено: 21 сен 2012, 10:30
Malig
С ним такая же ошибка

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

Добавлено: 21 сен 2012, 10:50
Denis Rykov
Значит что-то вы не так делаете, приведите в удобочитаемый вариант текст об ошибке может станет понятнее.

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 ...