Некогда столкнулся с тем, что если наимпортировать гугловских областей в Сас, последний начинает безбожно тормозить (см. тему). Я решил проблему так - примерно прикинул, за какими пределами детали покрытия мне неинтересны и их можно удалить. С запасом прикинул. Возиться со сложными границами не стал, взял допущение, что это прямоугольник и что все углы положительные (в северно-восточном полушарии). Дальше наваял простой и дубовый батник по аккуратному вырезанию областей за пределами этого прямоугольника.
Для работы с регэкспами я давно использую свободную портированную с никсов утилитку sed. Можно и что-то другое, конечно, но очень уж потрясает её скорость работы и простота задания условий в большинстве случаев. Сам батник:
chcp 1251
rem ## Очистка после импорта гугловских полигонов покрытия. Иностранные неинтересны.
rem ## Далёкие тоже неинтересны
rem # прямоугольник: широта(lat) 44.0-63.1, долгота(lon) 22.0-53.0 - очень примерный, c запасом
rem # первое условие - давно исправленный баг 203 про непустые имена, но пусть будет.
rem # второе - снести нахрен индексы (Полигон 100)
"path\to\sed.exe" ^
-e "s/name=\"0\"/name=\"\"/g" ^
-e "s/name=\"Полигон [0-9]*\"/name=\"\"/g" ^
-e "s/name=\"Untitled Polygon\"/name=\"\"/g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)onR=\"\-[0-9.]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)onR=\"[0-9].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)onR=\"1[0-9].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)onR=\"2[01].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)onL=\"5[3456789].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)onL=\"[6789][0-9].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)onL=\"[0-9][0-9][0-9].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)atT=\"\-[0-9.]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)atT=\"[0-9].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)atT=\"[123][0-9].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)atT=\"4[0123].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)atB=\"63.[23456789][0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)atB=\"6[456789].[0-9]*\" [^>]*>//g" ^
-e "s/<ROW [^>]* name=\"\" [^>]* \(L\|l\)atB=\"[789][0-9].[0-9]*\" [^>]*>//g" ^
marks.sml > marks_cleaned.sml
pause
Батник находится в той же папке, что и Сас. В принципе, легко отвязываемо, но надо ли?
Новый, прореженный файл меток получается в marks_cleaned.sml - автобэкап marks.sml и замену его новым не стал делать. При первых запусках лучше внимательно просматривать различия в файлах и переименовывать вручную.
Удаление ненужных гугловских областей
Модератор: Tolik
-
Dima2000
- Соображающий
- Сообщения: 70
- Зарегистрирован: 01 апр 2012, 18:20
- Откуда: Россия, Москва
- Благодарил (а): 22 раза
- Поблагодарили: 5 раз
Re: Удаление ненужных гугловских областей
Сидел полночи удалял лишние файлы из случайно закачанных (по разным причинам) гугловских снимков ... По карте заполнения искал и руками удалял, если много, то через выделение мелкой области. Попытка выделить полмира и удалить зумы 15 и более обречена на некислое ожидание ... Хотя реально там всего файлов то под сотню тысяч в сумме было. Но пока они все переберутся по одному ...
Увидел этот пост и вот оно! Похожим скриптиком можно и из кэша удалять по тайловым координатам ограничивающего прямоугольника. И ведь видел это раньше, но как-то не стукнуло в голову. Интересно за сколько он бы сделал ту работу? Весь кэш удаляется виндой за минут 5. SAS-ом - даже боюсь представить.
Увидел этот пост и вот оно! Похожим скриптиком можно и из кэша удалять по тайловым координатам ограничивающего прямоугольника. И ведь видел это раньше, но как-то не стукнуло в голову. Интересно за сколько он бы сделал ту работу? Весь кэш удаляется виндой за минут 5. SAS-ом - даже боюсь представить.
- DJ VK
- Гуру
- Сообщения: 1468
- Зарегистрирован: 16 апр 2009, 13:57
- Откуда: 8 км. от МКАД
- Благодарил (а): 80 раз
- Поблагодарили: 314 раз
Re: Удаление ненужных гугловских областей
ну еще варианты такие.Dima2000 писал(а):Сидел полночи удалял лишние файлы из случайно закачанных (по разным причинам) гугловских снимков ... По карте заполнения искал и руками удалял, если много, то через выделение мелкой области. Попытка выделить полмира и удалить зумы 15 и более обречена на некислое ожидание ... Хотя реально там всего файлов то под сотню тысяч в сумме было. Но пока они все переберутся по одному ...
Увидел этот пост и вот оно! Похожим скриптиком можно и из кэша удалять по тайловым координатам ограничивающего прямоугольника. И ведь видел это раньше, но как-то не стукнуло в голову. Интересно за сколько он бы сделал ту работу? Весь кэш удаляется виндой за минут 5. SAS-ом - даже боюсь представить.
1. на худой конец можно тотал командером искать файлы по маске, и выводя на панель грохать минуя корзину. Если винда не 7я, будет довольно шустро.
Главное шаблон для поиска грамотно составить.
2. Для дельфи и билдера есть компонент TLMDSearchFileGrep, задал маску или даже список директорий, в событии OnFileFound делаешь с файлом что хочешь.
уже много лет использую именно этот метод, если нужна хитрая обработка.