Условный знак с определенным шагом
-
- Интересующийся
- Сообщения: 41
- Зарегистрирован: 12 янв 2009, 09:03
- Репутация: 0
Условный знак с определенным шагом
Есть классификатор, который регламентирует оформление в условных знаках сады - как точечные объекты. Каким образом автоматизировать процесс, чтобы условный знак (точечный объект) создавался с определенным шагом, если не использовать импорт из других программ?
Последний раз редактировалось Максим Дубинин 17 фев 2009, 19:51, всего редактировалось 1 раз.
Причина: конкретнее название темы
Причина: конкретнее название темы
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Условный знак с определенным шагом
Очень просто, на бумаге
На практике придется немного поработать руками. Если не хотите прибегать к множественному программированию.
По шагам:
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'е, которая будет все это делать только применительно к каждому контуру в отдельности.

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

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'е, которая будет все это делать только применительно к каждому контуру в отдельности.
-
- Интересующийся
- Сообщения: 41
- Зарегистрирован: 12 янв 2009, 09:03
- Репутация: 0
Re: Условный знак с определенным шагом
Сенкс, идея хорошая, думаю без мапбэсик можно обойтись так: создать несколько точек в мапинфо, открыть текстовым редактором, выправить к нужному виду, а дальше - как описано во втором абзаце!Boris писал(а):Очень просто, на бумагеНа практике придется немного поработать руками. Если не хотите прибегать к множественному программированию..................
- SS_Rebelious
- Гуру
- Сообщения: 1304
- Зарегистрирован: 24 фев 2009, 16:51
- Репутация: 99
- Ваше звание: GIS pro-fan
- Откуда: Lahti / Газ-ПУТИНбург
- Контактная информация:
Re: Условный знак с определенным шагом
думаю без мапбэсик можно обойтись так: создать несколько точек в мапинфо, открыть текстовым редактором, выправить к нужному виду, а дальше - как описано во втором абзаце!
Поддерживаю, только я бы в первую очередь создал (автозаполнением) экселевский файл с координатами точек, покрывающими нужную область, с нужным шагом, а потом воспользовался бы в мапинфо функцией "создать точечные объекты" из получившейся таблички.
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!
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Условный знак с определенным шагом
Позволю себе себя же и процитировать:SS_Rebelious писал(а):думаю без мапбэсик можно обойтись так: создать несколько точек в мапинфо, открыть текстовым редактором, выправить к нужному виду, а дальше - как описано во втором абзаце!
Поддерживаю, только я бы в первую очередь создал (автозаполнением) экселевский файл с координатами точек, покрывающими нужную область, с нужным шагом, а потом воспользовался бы в мапинфо функцией "создать точечные объекты" из получившейся таблички.
Я и не ратую за лишние программы. Для кого-то написать два вложенных цикла на любом языке программирования - 2 минуты, для кого-то ближе Excel, хотя как-то мне ни разу не приходила в голову мысль, что он делает авто заполнение и по двум колонкам.Я как правило пользуюсь встроенной командой командной строки Windows XP
for /L %a (1,1,1000) do @echo %a >> 1.txt
Для меня быстрее всего получается текстовый файл из командной строки 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 минуты.
-
- Интересующийся
- Сообщения: 41
- Зарегистрирован: 12 янв 2009, 09:03
- Репутация: 0
Re: Условный знак с определенным шагом
Насколько я знаю, среда мапбесик-платная... или я ошибаюсь?!Boris писал(а):Позволю себе себя же и процитировать:SS_Rebelious писал(а):думаю без мапбэсик можно обойтись так: создать несколько точек в мапинфо, открыть текстовым редактором, выправить к нужному виду, а дальше - как описано во втором абзаце!
Поддерживаю, только я бы в первую очередь создал (автозаполнением) экселевский файл с координатами точек, покрывающими нужную область, с нужным шагом, а потом воспользовался бы в мапинфо функцией "создать точечные объекты" из получившейся таблички.Я и не ратую за лишние программы. Для кого-то написать два вложенных цикла на любом языке программирования - 2 минуты, для кого-то ближе Excel........Я как правило пользуюсь встроенной командой командной строки Windows XP
for /L %a (1,1,1000) do @echo %a >> 1.txt
____________________________________________________________________________________________________
Boris-у 100 грамм водки!

-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Условный знак с определенным шагом
Ошибаетесь.
Невероятное американское бескорыстие. Версии 9.0 и 9.5, и можно надеяться и дальше, пока все же не выйдет MapInfo со встроенным VBA (или VB.Net) - бесплатные.
Английские. Русские, за перевод, - платные.
К стати, по описанию в 9.5 встроена расширенная поддержка VB.Net и прочих xxx.Net от Visual Studio Net. Но сам не пробовал, поэтому не скажу насколько она "расширенная".

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