Векторная графика

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Векторная графика

Сообщение Vadim »

С какими форматами файлов для векторной графики может работать Lazarus\FreePascal? Чтение-изменение-запись.
Возникла небольшая тема, нужно сделать что-то вроде ГИСа. Т.е. есть карты (рисунки) и база данных с кучей точек (на местности), где производились заборы проб почвы. Эти точки нужно привязать к карте, чтобы кликнул и получил информацию. В битмапе расположение точки можно определить только на рисунке фиксированного размера, а оисунок необходимо увеличивать-уменьшать, поэтому я думаю использовать векторную графику.
Может быть кто-то раньше работал с подобной темой и есть мысли по этому поводу?
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

есть fpvectorial - там несколько форматов например svg и dxf. хз как там с записью, но чтение\отображение пока хромает

есть zcad - там dxf, у меня даже гифка с картой есть))
Изображение

вообще имхо стоит смотреть какиенибудь спецрешения, которых на лазаре конечно нет
Alex2013
долгожитель
Сообщения: 3233
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Ваш проект случайно к этому проекту отношения не имеет ?
:arrow: http://gispoliv.com/demo/
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Alex2013
Нет. Мы на 1000 км севернее и 4000 восточнее. :-)
olegy
незнакомец
Сообщения: 6
Зарегистрирован: 05.12.2015 17:35:07

Сообщение olegy »

Vadim писал(а):С какими форматами файлов для векторной графики может работать Lazarus\FreePascal? Чтение-изменение-запись.

Все зависит от объёмов данных, небольшие - то подойдут файловые.. как правило все они уже есть в fpc. Кроме закрытых.
если геоданных много - то смотрите в сторону базы данных. Например OpenStreetmap- данные хранит в PostgreSQL.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

olegy писал(а):Например OpenStreetmap- данные хранит в PostgreSQL.

Да, интересная штука. Надо с ней поближе познакомиться...
olegy
незнакомец
Сообщения: 6
Зарегистрирован: 05.12.2015 17:35:07

Сообщение olegy »

В битмапе расположение точки можно определить только на рисунке фиксированного размера, а оисунок необходимо увеличивать-уменьшать, поэтому я думаю использовать векторную графику.

Немного не так... Рисунок может масштабирован, у вас отображатся пиксель битмапа может на весь экран.. как и вся картинка умещатся в один экранный пиксель..
При малых расстояниях - можно считать, что гео-сетка ложится без изкажений на растовую. XY легко преобразуется в широту/долготу и наоборот.

На картах google,yandex, openstreetmap - в веб браузерах рисуются тайлы - это уже отрендеренные картинки, которые ложатся на гео-сетку в виде плиток, при удалении/приближении они сами масштабируются и по мере изменения дальше зума - заменяются на другие.

Если нужен хардкор - то можете рисовать все в векторах, но тут уже придется уходить на аппаратное ускорение графики.
посмотрите BGRAControls, у его есть слои и прозрачность. Нижний слой заполняете картой, масштабируете до определенного значения, подменяете уже новой картинкой под данный масштаб. А точки/значки просто рисуете согласно координатам.
Ответить