Условный знак с определенным шагом

MapInfo, MapBasic
Ответить
Braz
Интересующийся
Сообщения: 41
Зарегистрирован: 12 янв 2009, 09:03
Репутация: 0

Условный знак с определенным шагом

Сообщение Braz »

Есть классификатор, который регламентирует оформление в условных знаках сады - как точечные объекты. Каким образом автоматизировать процесс, чтобы условный знак (точечный объект) создавался с определенным шагом, если не использовать импорт из других программ?
Последний раз редактировалось Максим Дубинин 17 фев 2009, 19:51, всего редактировалось 1 раз.
Причина: конкретнее название темы
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Условный знак с определенным шагом

Сообщение Boris »

Очень просто, на бумаге :) На практике придется немного поработать руками. Если не хотите прибегать к множественному программированию.
По шагам:
1. определиться с макс-мин границами вашей максимальной заливки в левый-нижний/правый верхний угол
2. Любую доступную вам среду программирования. Можно MapBasic.
3. создаете программу, которая на основе двух циклов - от мин до макс по X и от мин до макс по Y строит пары координат в выбраноv вами максимальном диапазоне.
4. Сохраняете результат работы программы в текстовый файл.

:!: Я как правило пользуюсь встроенной командой командной строки Windows XP
for /L %a (1,1,1000) do @echo %a >> 1.txt
быстро удобно и не надо ничего искать.

5. Полученный текстовый файл загружает в MapInfo
6. Сохраняем его как таблицу в формате MapInfo
7. Открываем эту таблицу. Идем в команду меню Table Structure - будем исправлять структуру этой таблицы
8. Ставим галочку - таблица имеет гео-объекты : Table is Mappble
9. Выбираем нужную проекцию.
10. Выполняем геокодирование всех созданных точек командой Table -> Create Points
11. Там указываем поле координат по X и Y, можно еще раз задать проекцию
12. ПОлучаем поле точек.
13. Делаем это поле точек редактируемым слоем
14. загружаем контура, которые должны быть заполнены этими символами
15. выделяем весь слой точек- будущих условных знаков. Делаем его слоем обработки - Objects->Set Target
16. Выделяем весь слой контуров (надеюсь, что это полигоны)
17. Применяем команду Objects->Erase Outside
18. Получили точки, которые остались только внутри наших контуров. Присваиваем им требуемое оформление.
19. Сохраняем таблицу.
--- Уф... Вот и все. ----
По правде писать дольше, чем делать.
----
Не знаю каков объем ваших заливок, но MapInfo выдерживает много точек. Хотя и не бесконечно много. Что-то около 1 млн точек на одну таблицу.
-----
Если ваши контура имеют редкое покрытие или задачу надо регулярно повторять, то разумно будет написать программку на MapBasic'е, которая будет все это делать только применительно к каждому контуру в отдельности.
Braz
Интересующийся
Сообщения: 41
Зарегистрирован: 12 янв 2009, 09:03
Репутация: 0

Re: Условный знак с определенным шагом

Сообщение Braz »

Boris писал(а):Очень просто, на бумаге :) На практике придется немного поработать руками. Если не хотите прибегать к множественному программированию..................
Сенкс, идея хорошая, думаю без мапбэсик можно обойтись так: создать несколько точек в мапинфо, открыть текстовым редактором, выправить к нужному виду, а дальше - как описано во втором абзаце!
Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Условный знак с определенным шагом

Сообщение SS_Rebelious »

думаю без мапбэсик можно обойтись так: создать несколько точек в мапинфо, открыть текстовым редактором, выправить к нужному виду, а дальше - как описано во втором абзаце!


Поддерживаю, только я бы в первую очередь создал (автозаполнением) экселевский файл с координатами точек, покрывающими нужную область, с нужным шагом, а потом воспользовался бы в мапинфо функцией "создать точечные объекты" из получившейся таблички.
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Условный знак с определенным шагом

Сообщение Boris »

SS_Rebelious писал(а):
думаю без мапбэсик можно обойтись так: создать несколько точек в мапинфо, открыть текстовым редактором, выправить к нужному виду, а дальше - как описано во втором абзаце!


Поддерживаю, только я бы в первую очередь создал (автозаполнением) экселевский файл с координатами точек, покрывающими нужную область, с нужным шагом, а потом воспользовался бы в мапинфо функцией "создать точечные объекты" из получившейся таблички.
Позволю себе себя же и процитировать:
Я как правило пользуюсь встроенной командой командной строки Windows XP
for /L %a (1,1,1000) do @echo %a >> 1.txt
Я и не ратую за лишние программы. Для кого-то написать два вложенных цикла на любом языке программирования - 2 минуты, для кого-то ближе Excel, хотя как-то мне ни разу не приходила в голову мысль, что он делает авто заполнение и по двум колонкам.
Для меня быстрее всего получается текстовый файл из командной строки Windows XP (cmd.exe). для блока 1000х1000 точек от 0 до 999, соответственно, у меня получается
for /L %a in (0,1,999) do for /L %b in (0,1,999) do @echo %a; %b >> 1.txt
1 минута и файл 1.txt с координатами получен, и м.б. загружен в MapInfo.
Создание такого файла - полное дело вкуса, навыков и фантазии, и точно на результате не сказывается. При не очень больших трудозатратах можно и MIF сгенерить в те же 2-3 минуты.
Braz
Интересующийся
Сообщения: 41
Зарегистрирован: 12 янв 2009, 09:03
Репутация: 0

Re: Условный знак с определенным шагом

Сообщение Braz »

Boris писал(а):
SS_Rebelious писал(а):
думаю без мапбэсик можно обойтись так: создать несколько точек в мапинфо, открыть текстовым редактором, выправить к нужному виду, а дальше - как описано во втором абзаце!


Поддерживаю, только я бы в первую очередь создал (автозаполнением) экселевский файл с координатами точек, покрывающими нужную область, с нужным шагом, а потом воспользовался бы в мапинфо функцией "создать точечные объекты" из получившейся таблички.
Позволю себе себя же и процитировать:
Я как правило пользуюсь встроенной командой командной строки Windows XP
for /L %a (1,1,1000) do @echo %a >> 1.txt
Я и не ратую за лишние программы. Для кого-то написать два вложенных цикла на любом языке программирования - 2 минуты, для кого-то ближе Excel........
Насколько я знаю, среда мапбесик-платная... или я ошибаюсь?!
____________________________________________________________________________________________________
Boris-у 100 грамм водки! :D
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Условный знак с определенным шагом

Сообщение Boris »

Ошибаетесь. :D
Невероятное американское бескорыстие. Версии 9.0 и 9.5, и можно надеяться и дальше, пока все же не выйдет MapInfo со встроенным VBA (или VB.Net) - бесплатные.
Английские. Русские, за перевод, - платные.
К стати, по описанию в 9.5 встроена расширенная поддержка VB.Net и прочих xxx.Net от Visual Studio Net. Но сам не пробовал, поэтому не скажу насколько она "расширенная".
Ответить

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

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

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