Группировка бесхозных подписей MapInfo

MapInfo, MapBasic
Ответить
Аватара пользователя
Игорь Лебедь
Завсегдатай
Сообщения: 452
Зарегистрирован: 24 апр 2010, 19:47
Репутация: 101
Откуда: Город в клёнах и акациях
Контактная информация:

Группировка бесхозных подписей MapInfo

Сообщение Игорь Лебедь » 26 мар 2015, 11:16

Нужна помощь в группировке подписей мапинфо, атрибутов в слое нет, а надо сгруппировать подписи по типу шрифта, высоте, выравниванию по центру. Часть файла миф (весь файл большой):
Спойлер

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

Version   450
Charset "WindowsCyrillic"
Delimiter ","
CoordSys NonEarth Units "m" Bounds (0, 0) (2500000, 2500000)
Columns 1
  ID Char(16)
Data

Text
    "убежище"
    2277647.019 287457.183 2277695.966 287469.09
    Font ("Bm431",0,0,0)
    Justify Center
Text
    "гар."
    2277526.624 287325.748 2277547.791 287337.655
    Font ("Bm431",0,0,0)
    Justify Center
Text
    "2"
    2277523.351 286793.583 2277529.966 286808.135
    Font ("P131",0,0,0,16777215)
    Angle 54.9
    Justify Center
Text
    "А"
    2277542.681 286995.213 2277550.616 287008.443
    Font ("Bm431",4,0,0)
    Angle 322.7
    Justify Center
Text
    "спорт.\nпл."
    2277527.244 286961.645 2277568.454 286985.455
    Font ("Bm431",0,2,0)
    Justify Center
Text
    "99а"
    2277667.323 287309.674 2277685.844 287321.578
    Font ("D431",0,0,0)
    Angle 323.3
    Justify Center
Text
    "2"
    2277725.659 287387.181 2277736.245 287408.348
    Font ("P131",0,0,0,16777215)
    Angle 324.1
    Justify Center
Text
    "97"
    2277700.454 287407.063 2277715.731 287418.966
    Font ("D431",0,0,0)
    Angle 324.3
    Justify Center
Возможна ли такая группировка напрямую? Если нет, то как изобрести костыль? Ковыряния с заменой фраз в notepad++ пока не привели к результату.

Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 379
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Re: Группировка бесхозных подписей MapInfo

Сообщение ginpetr » 26 мар 2015, 11:21

В панели инструментов MapCad (поставляется вместе с Mapinfo) есть инструмент "Выбор объектов по стилю" - там можно запросить текст по указанным признакам.

thegeo
Активный участник
Сообщения: 160
Зарегистрирован: 17 янв 2012, 18:51
Репутация: 74

Re: Группировка бесхозных подписей MapInfo

Сообщение thegeo » 26 мар 2015, 15:39

Все это можно сделать и с использованием штатных средств MapInfo. Меню Запрос/SQL-запрос (см. рисунок) или выполнить в окне MapBasic соответствующие операторы:
Select * from rr where str$(ObjectInfo(obj, 2))="Font (" & chr$(34) & "Calibri" & chr$(34) & ",1,0,32768)" into Selection
Browse * From Selection

Это просто пример, но его без проблем можно приладить к своей задаче. Изменению подлежит строка справа от знака "=". Ну и вместо "rr" нужно поставить имя своей таблицы.
В строке можно изменить:
Calibri – имя шрифта;
1 – стиль (0-нормальный, 1-жирный и т.д.; см. описание предложения Font в справочнике MapBasic);
0 – размер в пунктах (0 т.к. размер шрифта в карте определяется динамически и конкретно не м.б. указан);
32768 – RGB-цвет, определяется (red*65536)+(green*256)+blue.
Если в таблице только текстовые объекты, то следующий запрос позволит выбрать объекты с выравниванием по центру:
Select * from ff where int(ObjectInfo(obj, 5))=1 into Selection
Значение параметра м.б.
0 – влево
1 – по центру
2 - вправо
Вложения
miHG180.png
miHG180.png (18.74 КБ) 3473 просмотра

Ответить

Вернуться в «MapInfo»

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

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