Проблема с заливкой полигонов в MI
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
И еще вопрос "вдогонку".
Вот у меня получилась колонка типа Brush (48, 65535, 1283226).
А как провести обратную операцию: изменить штриховку (заливку!) полигона по данным этой колонки. Не используя других языков программирования и даже MB (если возможно). В принципе, такое бы красивое решение меня бы вполне устроило. (уже думаю только о разноцветной сплошной заливке, от использования линейной штриховки, видать, надо отказываться)
Еще раз спасибо.
Вот у меня получилась колонка типа Brush (48, 65535, 1283226).
А как провести обратную операцию: изменить штриховку (заливку!) полигона по данным этой колонки. Не используя других языков программирования и даже MB (если возможно). В принципе, такое бы красивое решение меня бы вполне устроило. (уже думаю только о разноцветной сплошной заливке, от использования линейной штриховки, видать, надо отказываться)
Еще раз спасибо.
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
... вдогонку...
А у меня в таблице всего 252 типа оформления... (считал, как расписал выше)
Загадка MI, однако
Попробовал на версии 10.0. Эффект тот же самый. Один в один.
Попробовал на версии 8.0 ru. (уще откопал в отделе на одной из машинок)
В принципе всё тоже самое. Правда, как-то избирательно меняет. Если на версии 10.5 все последние по времени полигоны на свое усмотрение ставит, то в 8.0 версии. только один из...
И еще. Более ранние по времени создания полигоны оставляет (под условным номером 100 или 200), как заказываю.
Придется группировать полигоны по заливке, а делиться будут только линиями водоразделов.
Если есть мысли на этот счет - пишите. А я начинаю перерабатывать мою существующую таблицу.
Спасибо всем за обсуждение глюка. Увы, мы его не победили
А у меня в таблице всего 252 типа оформления... (считал, как расписал выше)
Загадка MI, однако

Попробовал на версии 10.0. Эффект тот же самый. Один в один.

Попробовал на версии 8.0 ru. (уще откопал в отделе на одной из машинок)
В принципе всё тоже самое. Правда, как-то избирательно меняет. Если на версии 10.5 все последние по времени полигоны на свое усмотрение ставит, то в 8.0 версии. только один из...
И еще. Более ранние по времени создания полигоны оставляет (под условным номером 100 или 200), как заказываю.
Придется группировать полигоны по заливке, а делиться будут только линиями водоразделов.
Если есть мысли на этот счет - пишите. А я начинаю перерабатывать мою существующую таблицу.
Спасибо всем за обсуждение глюка. Увы, мы его не победили

_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
-
- Активный участник
- Сообщения: 161
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Проблема с заливкой полигонов в MI
Код для RegColorRnd
- Вложения
-
RegColorRnd.rar
- (720 байт) 413 скачиваний
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
Спасибо, thegeo. Буду разбираться и вспоминать давно забытое прошлое...thegeo писал(а):Код для RegColorRnd
А в MB RND() действительно случайное или всё ж псевдослучайное и, соответственно, циклично повторяется?
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
Здравствуйте, сочувствующие и принявшие реальное участие!
Всех с наступающим Днём Победы!
А теперь по сути. Результат!
Как ни крути, но проблема 256 типов оформления существует!
Действительно: в MI НЕВОЗМОЖНО в одной таблице создать более 256 типов штриховок (заливок) объектов.
Создал новую таблицу и вручную разукрасил полигоны по RGB значениям (создал образец-гамму), что бы потом можно было не подбирать цвета каждый раз, а просто скопировать оформление. Так вот таких заливок может быть не больше 256 в одной таблице. На всю потенциальную гамму, естественно, не хватит, нужно создавать набор "гамма-таблиц".
Учту на будущее.
P.S. Ну это если MI использовать в качестве оформительского инструментария. Может и у кого-то другого такие задачи возникают.
Спасибо всем!
Всех с наступающим Днём Победы!
А теперь по сути. Результат!
Как ни крути, но проблема 256 типов оформления существует!
Действительно: в MI НЕВОЗМОЖНО в одной таблице создать более 256 типов штриховок (заливок) объектов.
Создал новую таблицу и вручную разукрасил полигоны по RGB значениям (создал образец-гамму), что бы потом можно было не подбирать цвета каждый раз, а просто скопировать оформление. Так вот таких заливок может быть не больше 256 в одной таблице. На всю потенциальную гамму, естественно, не хватит, нужно создавать набор "гамма-таблиц".
Учту на будущее.
P.S. Ну это если MI использовать в качестве оформительского инструментария. Может и у кого-то другого такие задачи возникают.
Спасибо всем!
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Проблема с заливкой полигонов в MI
Ну, все же надо сказать - "256 - это очень немало".
Людей, кто осилит это в одной карте еще поискать надо. С учетом того, что тематическое оформление можно сохранять в WOR и отдельно в виде настроенных шаблонов, такой подход как ручное "раскрашивание" следует отнести к мало используемым. Кроме того в последних версиях мапинфо добавилась возможность построения двойной тематики на одном слое данных - этом случае оформления "верх" и "низ" не затирают друг друга, а комбинируются - получается очень приличное число возможных вариантов.
Да, и как я понимаю ограничение на 256 дожно действовать только на "внутреннюю" заливку - граница, как полилиния, должна давать еще 256 вариантов.
Людей, кто осилит это в одной карте еще поискать надо. С учетом того, что тематическое оформление можно сохранять в WOR и отдельно в виде настроенных шаблонов, такой подход как ручное "раскрашивание" следует отнести к мало используемым. Кроме того в последних версиях мапинфо добавилась возможность построения двойной тематики на одном слое данных - этом случае оформления "верх" и "низ" не затирают друг друга, а комбинируются - получается очень приличное число возможных вариантов.
Да, и как я понимаю ограничение на 256 дожно действовать только на "внутреннюю" заливку - граница, как полилиния, должна давать еще 256 вариантов.
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
Видимо, я один из тех немногих...Boris писал(а):Ну, все же надо сказать - "256 - это очень немало".
Людей, кто осилит это в одной карте еще поискать надо. С учетом того, что тематическое оформление можно сохранять в WOR и отдельно в виде настроенных шаблонов, такой подход как ручное "раскрашивание" следует отнести к мало используемым. Кроме того в последних версиях мапинфо добавилась возможность построения двойной тематики на одном слое данных - этом случае оформления "верх" и "низ" не затирают друг друга, а комбинируются - получается очень приличное число возможных вариантов.
Да, и как я понимаю ограничение на 256 дожно действовать только на "внутреннюю" заливку - граница, как полилиния, должна давать еще 256 вариантов.

Границ в данном случае быть не должно. Они в другом слое (водоразделы). А поскольку MI очень плохо печатает (в bmp- jpg - файл) различные виды штриховок, а сплошная заливка изначально перекрывает нижележащую, вот и приходится навести красоту ручками. Разовая операция. В технологии ГИС (запросы, временные таблицы и т.д.) по-сути не используется. Там предполагаются другие запросы и условия, дополнительную тематику надо ещё и построить. А кому??? Просто "красота" для очень конкретной тематической карты. Настроенные шаблоны - тоже, имхо, здесь не выход. Почемы? 1. Всё количество водосборов не перекроет ни один шаблон. 2. Шаблонами надо ещё уметь пользоваться (см. выше - да, да, в этом ещё тоже проблема...

Самое простое решение, имхо. Просто столкнулся с данным ограничением. Понял, что его не обойти. В результате - "перерисовал" таблицу.
Спасибо, Boris.
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Проблема с заливкой полигонов в MI
все таки я бы посмотрел в сторону сшитых таблиц.
если есть под рукой два разных набора по 256 оформленний, то выложите здесь - я посмотрю как они себя ведут, когда объединяются в сшитую таблицу. я раньше был уверен, что сшитые таблицы - это просто текстовый файл со списком таблиц в нее входящих. теперь вижу, что это какое-то более сложное объединение через специальную утилиту. но судя по размеру MAP файла, хранить оформление в этой таблице негде, т.е. ей придется брать его из исходных таблиц.
если есть под рукой два разных набора по 256 оформленний, то выложите здесь - я посмотрю как они себя ведут, когда объединяются в сшитую таблицу. я раньше был уверен, что сшитые таблицы - это просто текстовый файл со списком таблиц в нее входящих. теперь вижу, что это какое-то более сложное объединение через специальную утилиту. но судя по размеру MAP файла, хранить оформление в этой таблице негде, т.е. ей придется брать его из исходных таблиц.
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
"Сшитые таблицы" - тоже - "НЕТ". Сиё изначально трудно для наших пользователей уж очень начального уровняBoris писал(а):все таки я бы посмотрел в сторону сшитых таблиц.
если есть под рукой два разных набора по 256 оформленний,
то выложите здесь... изначально "НЕТ"... админы такой возможности не дают, пробывал. Буду изыскивать другие возможности... И как-нибудь изыщу. Может кому и понадобятся мои "водосборы"

Спасибо за "научение", Boris
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Проблема с заливкой полигонов в MI
я не против водосборов, но я говорил про любые таблицы одной структуры, что имеют более 256 различных полигональных оформлений. попробую, что дает RegColorRnd
если ваши пользователи не правят сами таблиц, то о сшитости таблиц они и не узнают. хотя в целом это какой-то очень странный "вывих" в технологиях мапинфо - развития он не получил и стандартно как-то очень заумно создается.
если ваши пользователи не правят сами таблиц, то о сшитости таблиц они и не узнают. хотя в целом это какой-то очень странный "вывих" в технологиях мапинфо - развития он не получил и стандартно как-то очень заумно создается.
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
Спасибо, Boris, за поддержку. Попробовал сам поработать со "сшитостью"...Boris писал(а):... сшитости таблиц... хотя в целом это какой-то очень странный "вывих" в технологиях мапинфо - развития он не получил и стандартно как-то очень заумно создается.
1. Таблицы должны быть одной структуры (что, в общем-то, для одних и тех же данных так оно и есть).
2. Сшитые таблицы (пока они сшиты) НЕ РЕДАКТИРУЕТСЯ.
3. Мало того, она не позволяет даже взять информацию (средствами интерфейса MI) со слоя. А вот это уже вообще ни в какие ворота!!!

4. Не подходят нам сшитые таблицы, не-под-хо-дят!
Не будем мудрствовать лукаво, просто сделали пару-тройку таблиц-шаблонов с "радужной" заливкой (в т.ч. "водосборы", рельеф - там тоже такие задачи есть, геоморфологию-четвертичку - тоже туда притянем "за уши"), полноценные такие таблицы, со всеми атрибутами, потом, при необходимости, просто будем копировать стиль из этих таблиц. Кое-какое упорядочивание будет - и то ладно! Главное, что на эти "грабли" уже никто не наступит. Очередную инстрУкцию-метОдику распишем, подписи всех пользователей под ней соберём, вот и решим проблему



Таблицу-шаблон, кстати, сделал средствами Worda-Excel'я. Потом просто свяжу атрибуты с цветовой схемой.
А вот что еще интересно. Никогда не обращали внимания, как MI формирует RGB-индекс? А вот опять-таки, не так, как в Windows-Word-Excel. Это я точно выяснил!
В MapInfo: RGB-индекс высчитывается как R*65536+G*256+B
в Microsoftных продуктах так: R+G*256+B*65536,
где R - значение красного, G - зеленого и B - синего соответственно.
И с чем связана такая "уникальность" я пока объяснения не нашёл... Вот вам и ещё "какой-то странный "вывих" в технологиях MapInfo"... Она нас не перестаёт удивлять...

_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
Ну и еще проблема-вопрос (ко всем гуру) отсюда вытекающая.
Есть ли возможность закрасить полигоны в MI по заданным значениям в колонке таблицы?
Например. В некой колонке ColorPolygon (условно) есть значение: BRUSH(2.1694467) (например).
Вот очень бы хотелось сделать как в Excel: чтобы сами полигоны разукрасились по заданным значениям, ну, допустим, по некой команде (как в Excel - по F9 - пересчёт...) что-то в этом роде.
Структура таблицы будет строго определена, неизменна. Можно даже выполнить отдельную подпрограмму mbx (хотя при наличии исходников применить её к другим таблицам, имхо, не представляется затруднительным). Набор цветовой гаммы тоже строго определен (хотя и здесь может быть ссылка на другую таблицу-шаблон)
ИМХО, так бы было гораздо легче, чем каждый полигон ручками красить по RGB
Есть такое решение, уважаемые гуру?
Интересует сам процесс, думается, при наличии исходников (не очень, правда, замудрённых
) смогу и сам "заточить" под себя.
Заранее спасибо за ваше внимание.
Есть ли возможность закрасить полигоны в MI по заданным значениям в колонке таблицы?
Например. В некой колонке ColorPolygon (условно) есть значение: BRUSH(2.1694467) (например).
Вот очень бы хотелось сделать как в Excel: чтобы сами полигоны разукрасились по заданным значениям, ну, допустим, по некой команде (как в Excel - по F9 - пересчёт...) что-то в этом роде.
Структура таблицы будет строго определена, неизменна. Можно даже выполнить отдельную подпрограмму mbx (хотя при наличии исходников применить её к другим таблицам, имхо, не представляется затруднительным). Набор цветовой гаммы тоже строго определен (хотя и здесь может быть ссылка на другую таблицу-шаблон)
ИМХО, так бы было гораздо легче, чем каждый полигон ручками красить по RGB
Есть такое решение, уважаемые гуру?
Интересует сам процесс, думается, при наличии исходников (не очень, правда, замудрённых

Заранее спасибо за ваше внимание.
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
- Игорь Белов
- Гуру
- Сообщения: 2241
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1514
- Откуда: Казань
Re: Проблема с заливкой полигонов в MI
Когда-то написал программку изменения стилей площадных объектов по данным из колонок.
Таблица должна называться Areas и находиться в той же папке, что и программа.
Имена полей тоже заданы жёстко:
Код: Выделить всё
'==============================================================================
' Program to change styles of Area objects using table data
'==============================================================================
Include "mapbasic.def"
Declare Sub Main
'==============================================================================
' Main procedure
'------------------------------------------------------------------------------
Sub Main
Dim acol(6), aobj As Alias
Dim oobj As Object
Dim fname, tbl As String
Dim width, pen_pat, color, brush_pat, forecolor, backcolor As Integer
Dim n As Integer
fname = ApplicationDirectory$() + "Areas"
tbl = PathToTableName$(fname)
acol(1) = tbl + ".Width"
acol(2) = tbl + ".PenPat"
acol(3) = tbl + ".Color"
acol(4) = tbl + ".BrushPat"
acol(5) = tbl + ".ForeColor"
acol(6) = tbl + ".BackColor"
aobj = tbl + ".obj"
For n = 1 To TableInfo(tbl, TAB_INFO_NROWS)
Fetch Rec n From tbl
width = acol(1)
pen_pat = acol(2)
color = acol(3)
brush_pat= acol(4)
forecolor = acol(5)
backcolor = acol(6)
oobj = aobj
Alter Object oobj
Info OBJ_INFO_PEN, MakePen(width, pen_pat, color)
Alter Object oobj
Info OBJ_INFO_BRUSH, MakeBrush(brush_pat, forecolor, backcolor)
Update tbl Set obj = oobj Where RowID = n
Next
Commit Table tbl
End Sub
'==============================================================================
Имена полей тоже заданы жёстко:
- Width — толщина контура;
- PenPat — стиль контура;
- Color — цвет контура;
- BrushPat — стиль заливки;
- ForeColor — цвет заливки;
- BackColor — цвет фона.
Последний раз редактировалось Игорь Белов 11 май 2012, 22:52, всего редактировалось 3 раза.
The purpose of computing is insight, not numbers
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Проблема с заливкой полигонов в MI
ErnieBoyd, спасибо! Не ожидал такого скоро ответа.
Но буду разбираться только завтра на работе. Сейчас чуть-чуть другим голова забита.
Огромное, прям-таки НЕЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!
Но буду разбираться только завтра на работе. Сейчас чуть-чуть другим голова забита.
Огромное, прям-таки НЕЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость