Сделать разграфку топокарт 1:25 000 и 1:50 000
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Из простой задачи уже какой-то "монстр" получается, а так, конечно, хорошие пожелания...
- Institor
- Активный участник
- Сообщения: 243
- Зарегистрирован: 22 апр 2011, 08:10
- Репутация: 27
- Откуда: Хабаровск
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Мне кажется, это все уже лишнее. Задача однократная, вопросы оформления решаются в три клика после генерации (благо номенклатура есть). Ненужные полигоны легко удаляются примерно за 4 секунды
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Еще раз автору ограмное спасибо, наверное лучшее решение этой задачи, которое встречал...
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Старый лис Mitrich зрит в корень, снимаю шляпу. Первые два замечания заставили ответить новой версией.
1. … сделать заливку прозрачной (в настройки?) — Сделано.
2. … нагенерил … листов, что пересекаются с буфером. — Сделано.
3. добавлять масштаб в атрибутику… — Неактуально, пока действует принцип «один масштаб — один слой».
4. подписи листов по-умолчанию… — Оставим пользователю.
5. транслитерация номеров листов… — А это в век Юникода оставим археологам.
Взаимодействие с пользователем изменилось незначительно.
[1 : 1 000 000] — покрытие глобуса миллионными листами;
[Создать листы…] — листы нужного масштаба создаются поверх объектов, выбранных в окне карты.
1. … сделать заливку прозрачной (в настройки?) — Сделано.
2. … нагенерил … листов, что пересекаются с буфером. — Сделано.
3. добавлять масштаб в атрибутику… — Неактуально, пока действует принцип «один масштаб — один слой».
4. подписи листов по-умолчанию… — Оставим пользователю.
5. транслитерация номеров листов… — А это в век Юникода оставим археологам.
Взаимодействие с пользователем изменилось незначительно.
[1 : 1 000 000] — покрытие глобуса миллионными листами;
[Создать листы…] — листы нужного масштаба создаются поверх объектов, выбранных в окне карты.
- Вложения
-
- nom42-4.0.mbx.zip
- mbx
- (6.25 КБ) 485 скачиваний
-
- nom42-4.0.src.zip
- Исходники
- (6.78 КБ) 446 скачиваний
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Спасибо, посмотрим...
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Проверил, при создании листов получаем по 1 ряду по широте и долготе лишние, которые выходят за лист 1 млн. с южной и восточной стороны? Проверял на 1:25000, 1:100000, 1:500000 ...
Последний раз редактировалось Донецков 13 апр 2012, 11:05, всего редактировалось 1 раз.
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Есть такое. И не только в этих мастабах. М 1:50000 тоже. На счет М 1:200000 уже не помню, но может автор проверит. Похоже, "система" какая-то закралась.Донецков писал(а):Проверил, при создании листов получаем по 1 ряду по широте и долготе лишние, которые выходят за лист 1 млн. с южной и восточной стороны? Проверял на 1:25000 и 1:100000...
И ОГРОМНОЕ СПАСИБО за работу. КЛАСС!!
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Так должно быть. Попробую объяснить.Донецков писал(а):получаем по 1 ряду по широте и долготе лишние
- В четвёртой версии операция Построить листы… не зависит от созданной ранее миллионной основы.
В качестве целевых выбираются объекты из произвольного слоя, и запускается операция. Листы в процессе генерируются в прямоугольной области с минимальным запасом, а окончательный результат выбирается оператором Intersects. - Если целевым объектом взять миллионный лист, то программа поступит с ним, как с простым объектом. Чтобы обеспечить полное покрытие этого объекта, она создаст дополнительные листы по краям. Они в итоге попадут в выборку, поскольку соприкасаются с объектом, а соприкасающиеся объекты считаются пересекающимися.
Ну а если нужно именно покрытие миллионного листа, могу предложить дюжину способов решения проблемы (разной степени извращённости). Самый простой — сгенерить листы и убить результат запроса вида
Код: Выделить всё
SELECT * FROM nomxxx WHERE Name NOT LIKE "N-37%"
The purpose of computing is insight, not numbers
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Всё же подправил алгоритм. Однако он несовершенен, ибо изложенное в предшествующем посте остаётся в силе.
Итак, «лишних» листов вокруг целевой «миллионки» не будет, если выполняются два условия:
Итак, «лишних» листов вокруг целевой «миллионки» не будет, если выполняются два условия:
- выбранные миллионные листы заполняют прямоугольник (например, 1×1);
- число листов запрашиваемого масштаба, укладывающихся на «миллионке» от меридиана до меридиана, кратно четырём.
- Вложения
-
- nom42-4.1.mbx.zip
- MBX
- (6.32 КБ) 442 скачивания
-
- nom42-4.1.src.zip
- Исходники
- (7.07 КБ) 455 скачиваний
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Спасибо за программу.
Есть только два небольших пожелания:
а) при создании таблицы учитывать границы выбранного объекта при создании результирующей таблицы
б) позволить выбирать плоскую проекцию, опять же для тех целей, что бы можно было задать границы
Как сами понимаете мапинфо со своими целочисленными границами дает хорошие погрешности в позиционировании.
Есть только два небольших пожелания:
а) при создании таблицы учитывать границы выбранного объекта при создании результирующей таблицы
б) позволить выбирать плоскую проекцию, опять же для тех целей, что бы можно было задать границы
Как сами понимаете мапинфо со своими целочисленными границами дает хорошие погрешности в позиционировании.
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Простите, Boris. Похоже, нас разделяет океан непонимания.Boris писал(а):Спасибо за программу.
Есть только два небольших пожелания:
а) при создании таблицы учитывать границы выбранного объекта при создании результирующей таблицы
б) позволить выбирать плоскую проекцию, опять же для тех целей, что бы можно было задать границы
Как сами понимаете мапинфо со своими целочисленными границами дает хорошие погрешности в позиционировании.
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Уважаемый АВТОР очень полезной утилиты, а Вы не задумывались, чтобы программа могла расчитыать не стандартные номенклатуры (например, СК-63)...?
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Разграфка листов СК-63 стандартна. Вот утилита nom63, реализующая этот стандарт. Интерфейс как у nom42.Донецков писал(а):…а Вы не задумывались, чтобы программа могла расчитывать не стандартные номенклатуры (например, СК-63)...?
Есть особенности.
- СК-63 не глобальна, а состоит из множества блоков, ограниченных территориально и идентифицируемых литерами от A до Z. Программа не знает о территориальной ограниченности. Пользователь должен знать, какой блок его интересует, и правильно указать буковку.
- Удвоение листов в СК-63 имеется, но я не видел одинарных и двойных в месте стыковки. Пока реализовал так: если середина стотысячного листа севернее 60°, все листы более крупных масштабов на нём удваиваются; аналогично с учетверением севернее 76°.
- Параметры блоков программа читает из таблицы данных nom63. В таблице три колонки: Литера, долгота и широта ЮЗ угла листа Л-1-1. Пока в таблице только блоки D, R, L, V.
Пользователь может добавлять в таблицу свои блоки. Однако хотелось бы, чтобы не только утилита была доступна сообществу, но и данные для неё, посему создаю новый тред.
- Вложения
-
- nom63-1.0.dat.zip
- Параметры
- (537 байт) 470 скачиваний
-
- nom63-1.0.mbx.zip
- MBX
- (5.41 КБ) 482 скачивания
-
- nom63-1.0.src.zip
- Исходники
- (6.34 КБ) 510 скачиваний
The purpose of computing is insight, not numbers
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Параллельно с кодированием nom63 правил nom42. В основном стилистика; есть багфикс (мог проявиться на 88-й параллели). Изменил имя для миллионного файла с nom1mln на nom42.
- Вложения
-
- nom42-4.2.mbx.zip
- MBX
- (6.2 КБ) 458 скачиваний
-
- nom42-4.2.src.zip
- Исходники
- (7.06 КБ) 443 скачивания
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Сделать разграфку топокарт 1:25 000 и 1:50 000
Очень оперативно, спасибо, посмотрим....
для добавления параметров возможно пригодится: http://giscraft.ru/maps/navigat.shtml
для добавления параметров возможно пригодится: http://giscraft.ru/maps/navigat.shtml
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 18 гостей