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

Генератор библиотеки условных знаков для карт и планов

Добавлено: 16 авг 2013, 17:53
ANAT01
Задумался о создании библиотеки условных знаков (УЗ).
Идея в том чтобы сделать файл описания УЗ и из него генерировать наборы этих знаков в различных форматах (dxf, svg, png)

Вот примерный формат описания на json

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

{
"117": {
"t": "kolodez",
"title": "Колодец",
"description": "Колодцы смотровые (люки) подземных коммуникаций",
"link": "184..186",
"symbol": [
{
"n": "bezrazdel",
"name": "без разделения",
"geometry": {
"default": [
{"line": "..."},
{"circle": "..."},
{"line": "..."}
],
"500": [
{"line": "..."},
{"line": "..."},
{"line": "..."}
],
"1000": [
{"line": "..."},
{"line": "..."},
{"line": "..."}
]
}
},
{
"n": "vodoprovod",
"name": "водопровод",
"geometry": {
"default": [
{"line": "..."},
{"line": "..."},
{"line": "..."}
],
"500": [
{"line": "..."},
{"line": "..."},
{"line": "..."}
],
"1000": [
{"line": "..."},
{"line": "..."},
{"line": "..."}
]
}
}
]
}
}

(Структуру проще смотреть через http://jsonviewer.stack.hu/ или http://json.parser.online.fr/)

Здесь описывается знак 117 по классификатору "УСЛОВНЫЕ ЗНАКИ ДЛЯ ТОПОГРАФИЧЕСКИХ ПЛАНОВ МАСШТАБОВ 1:500-1:5000"
Из этого файла скриптом будут генерироваться файлы знаков с именами из описания, например
  • 117_kolodez_bezrazdel
    117_kolodez_bezrazdel_500
    117_kolodez_bezrazdel_1000
    117_kolodez_vodoprovod
    117_kolodez_vodoprovod_500
    117_kolodez_vodoprovod_1000
В чем преимущества такого подхода:
1. Чистота рисунка знака
2. Генерация разных форматов (dxf для CAD систем, svg для QGis и веба)
3. Единообразие/соответствие имени и рисунка в svg и dxf (некая стандартизация)
4. Генерация файла классификатора (например в формате pdf или html) описывающего знаки
5. Возможность контроля версий в случае изменений исправлений

В чем недостатки:
1. Трудно писать такое описание руками

Что требуется:
1. Покритиковать структуру данных / предложить другой формат описания
2. Подсказать библиотеки на питоне для генерации svg и dxf
3. Может лучше генерировать один формат, а потом из него конвертировать другой (svg в dwf или dwf в svg). Подскажите программы?!
4. Какие могут быть проблемы?
5. Где взять УСЛОВНЫЕ ЗНАКИ ДЛЯ ТОПОГРАФИЧЕСКИХ ПЛАНОВ МАСШТАБОВ 1:500-1:5000 в эл. формате, желательно html.

Re: Генератор библиотеки условных знаков для карт и планов

Добавлено: 16 авг 2013, 18:09
bim2010
5. Где взять УСЛОВНЫЕ ЗНАКИ ДЛЯ ТОПОГРАФИЧЕСКИХ ПЛАНОВ МАСШТАБОВ 1:500-1:5000 в эл. формате
http://www.opengost.ru/iso/07_gosty_iso ... 1_500.html
http://www.gisinfo.ru/classifiers/classifiers.htm

Re: Генератор библиотеки условных знаков для карт и планов

Добавлено: 17 авг 2013, 07:26
bingeomap
ANAT01 писал(а): 5. Где взять УСЛОВНЫЕ ЗНАКИ ДЛЯ ТОПОГРАФИЧЕСКИХ ПЛАНОВ МАСШТАБОВ 1:500-1:5000 в эл. формате, желательно html.
А блоки в AutoCAD вас устраивает?

Re: Генератор библиотеки условных знаков для карт и планов

Добавлено: 20 авг 2013, 01:31
ANAT01
Идея такая: Рисовать графику в PostScript формате и конвертировать в другие.
Для рисования в PostScript использую библиотеку PyX (есть и другие)
Рисуем линии, окружности, заливки.
На выходе получаем .eps файл.
Далее утилитой pstoedit превращаем исходник в dxf(версия 14) и svg.
Возникла проблема с заливкой в dxf. Она вообще не рисуется.
Даже если взять залитый квадрат и сохранить его в eps через autocad, то преобразуя его в dxf через pstoedit заливка все равно не получатся. (заместо нее получаем еще один контур квадрата и линию по диагонали). Или косяк pstoedit для dxf, или формата eps применительно к dxf. Хотя ничего другого для преобразования eps->dxf не нашел.
Вообщем пока проблема с инструментами :(

Re: Генератор библиотеки условных знаков для карт и планов

Добавлено: 20 авг 2013, 05:01
Донецков
заливка как объект в автокаде отсутствует (ну или практически отсутствует)
есть штриховка сплошная с 14 версии автокада,
есть форма, используется в т.ч. для шрифтов,
в версии MAP есть мультиполигон, который имеет свойство цвет заливки...

в свое время использовал ttf шрифты с условными топознаками, к сожалению, автокад не позволяет их вставлять как точечный условный знак непосредственно, приходилось вставлять текст вводя код знака, что не очень удобно... также вставлял в MapInfo, для того, чтобы значи масштабировались при изменения масштаба изображения, т.к. точечные УЗ увы не масштабировались автоматически...

Re: Генератор библиотеки условных знаков для карт и планов

Добавлено: 20 авг 2013, 17:22
ANAT01
Получается, что команда fill из postscript интерпретируется драйвером dxf_s в pstoedit не как hatch а как что то другое(или не интерпретируется). Без костыля в этом драйвере видимо не обойтись, а это уже C++ и я не осилю.
Задача оказалась не такой уж тривиальной.
Если делать dxf->svg, тут тоже вопрос. Будет ли штриховка интерпретироваться как заливка и как это будет происходить, т.к. штриховка в автокаде это не сплошная штриховка (заливал квадрат и делал из этого eps в итоге получал 2 треугольника fill)

Re: Генератор библиотеки условных знаков для карт и планов

Добавлено: 20 авг 2013, 19:55
gimran
Конвертировал онлайн конвертером ttf в svg шрифт, потом выдергивал символы (как выдернуть из шрифта на прямую - не нашел).

[ Сообщение с мобильного устройства ]