SASGIS

Веб-картография и навигация

Удаление ненужных гугловских областей

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

Удаление ненужных гугловских областей

Сообщение gpsMax » 01 окт 2011, 12:18

Некогда столкнулся с тем, что если наимпортировать гугловских областей в Сас, последний начинает безбожно тормозить (см. тему). Я решил проблему так - примерно прикинул, за какими пределами детали покрытия мне неинтересны и их можно удалить. С запасом прикинул. Возиться со сложными границами не стал, взял допущение, что это прямоугольник и что все углы положительные (в северно-восточном полушарии). Дальше наваял простой и дубовый батник по аккуратному вырезанию областей за пределами этого прямоугольника.

Для работы с регэкспами я давно использую свободную портированную с никсов утилитку 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 и замену его новым не стал делать. При первых запусках лучше внимательно просматривать различия в файлах и переименовывать вручную.

За это сообщение автора gpsMax поблагодарил:
Dima2000 (01 апр 2012, 21:08)
Рейтинг: 5.26%
 
gpsMax
Постигающий Дао
 
Сообщения: 142
Зарегистрирован: 02 апр 2010, 23:58
Благодарил (а): 44 раз.
Поблагодарили: 9 раз.

Re: Удаление ненужных гугловских областей

Сообщение Dima2000 » 01 апр 2012, 21:08

Сидел полночи удалял лишние файлы из случайно закачанных (по разным причинам) гугловских снимков ... По карте заполнения искал и руками удалял, если много, то через выделение мелкой области. Попытка выделить полмира и удалить зумы 15 и более обречена на некислое ожидание ... Хотя реально там всего файлов то под сотню тысяч в сумме было. Но пока они все переберутся по одному ...
Увидел этот пост и вот оно! Похожим скриптиком можно и из кэша удалять по тайловым координатам ограничивающего прямоугольника. И ведь видел это раньше, но как-то не стукнуло в голову. Интересно за сколько он бы сделал ту работу? Весь кэш удаляется виндой за минут 5. SAS-ом - даже боюсь представить.
Dima2000
Соображающий
 
Сообщения: 70
Зарегистрирован: 01 апр 2012, 18:20
Откуда: Россия, Москва
Благодарил (а): 22 раз.
Поблагодарили: 5 раз.

Re: Удаление ненужных гугловских областей

Сообщение DJ VK » 04 апр 2012, 15:02

Dima2000 писал(а):Сидел полночи удалял лишние файлы из случайно закачанных (по разным причинам) гугловских снимков ... По карте заполнения искал и руками удалял, если много, то через выделение мелкой области. Попытка выделить полмира и удалить зумы 15 и более обречена на некислое ожидание ... Хотя реально там всего файлов то под сотню тысяч в сумме было. Но пока они все переберутся по одному ...
Увидел этот пост и вот оно! Похожим скриптиком можно и из кэша удалять по тайловым координатам ограничивающего прямоугольника. И ведь видел это раньше, но как-то не стукнуло в голову. Интересно за сколько он бы сделал ту работу? Весь кэш удаляется виндой за минут 5. SAS-ом - даже боюсь представить.

ну еще варианты такие.
1. на худой конец можно тотал командером искать файлы по маске, и выводя на панель грохать минуя корзину. Если винда не 7я, будет довольно шустро.
Главное шаблон для поиска грамотно составить.
2. Для дельфи и билдера есть компонент TLMDSearchFileGrep, задал маску или даже список директорий, в событии OnFileFound делаешь с файлом что хочешь.
уже много лет использую именно этот метод, если нужна хитрая обработка.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.


Вернуться в SAS.Планета

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

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