Как уменьшить файл kmz

Обновлено: 06.07.2024

Вы никогда не сталкивались с проблемой - создали крутую, огромную карту, с кучей спецэффектов, импортированных моделей и звуков НО - :omg: :crash: :dead: :( она весит 3-5, а то и больше МБ. что же делать?! Выложили ее в интернет, потратив кучу трафика, а там ее даже никто не качает. столько усилий впустую.

Что ж, надеюсь, эта статья поможет вам немножечко уменьшить размер карты. :)

Как ужать рельеф
Обычно рельеф занимает не много, однако я, иногда заходя в какйю-нибудь карту, весящую под 1 метр, через редактор редактор обнаруживаю ЦЕЛУЮ КУЧУ неиспользованного пространства, заделанного черной "границей". Мда. а автор еще удивляется "почему моя карта занимает так много? Я ведь не использовал чужие звуки или модели".

Есть два способа лишения этой проблемы:
1) Перенести рельеф на другую, меньшую по размерам карту с помощью Ctrl+V и выделения областей рельефа.
2) Заделать все неиспользованные (и те, что юзер не имеет возможности увидеть) области тупой, "первоначальной" текстурой (то есть той, что автоматически была выбрана редактором при нажатии кнопки "новая карта" (естественно, что подразумевается та текстура, которая была выделена после того, как вы выбрали тип ландшафта)). Все эти области должны быть плоскими - помните, что чем однообразнее и неинетреснее рельеф, тем он меньше весит. Но не стоит пренебрегать красивым рельефом в тех местах, которые увидит юзер, играющий в вашу карту.

Лучше, конечно, использовать первый вариант, и компактно разместить свой рельеф на маленькой карте.

Да и кстати - удалите неиспользуемые текстуры земли (если такие есть).

Как ужать импортированные текстуры
Лично меня однажды чуть инфаркт не хватил, когда я открыл редактор Импорта и не увидел, что одна из текстур весит 600 КБ.
Для сжатия нам понадобится WarCraft3Viewer. Открываем его, переводим нужную текстуру в TGA-формат (падающее меню Convert Files - BLP -> TGA, BMP or JPG ). Потом из TGA переводим BLP с подбором нужного качества (потом можете посмотреть получившуюся текстуру. В принципе, для моделей высокое качество не очень важно. Хватит 10-15-ти).
Вот и все. Заменяем текстуру в редакторе.

Как ужать музыку
Всем известно, что основную часть в картах занимает импортированные звуки и, особенно музыка. Однако и ее размер можно уменьшить. Для этого нужно иметь специальный Конвертер (содержится в одном из вложений). Пользоваться им довольно легко:

Как сделать маленький размер, чтобы качество было не совсем ужасное
Для этого на загружаемый файл нужно ставить частоту 22050 Hz, mp3, и качество 24-40 Kbps.

Заключительное, не значительное сжатие.
Скачайте вексовский оптимайзер. Активируйте его на своей карте.

Ну что ж – надеюсь, я помог вам хоть немножечко уменьшить размер своей карты.

Однажды фирма Гармин, под давлением прогресса и общественности, разрешила заливать в свои навигаторы карты, созданные на основе растровых изображений. Для чего усовершенствовала уже имеющийся формат, придумала новый, а ещё один позаимствовала у "корпорации добра" под названием Google. Если первый у нас ещё не получил столь широкого распространения и активно применяется, в основном, в приборах морской серии (да и то за пределами страны), то два других предназначены специально для "туристов" и их девайсов (выбор которых не так уж и мал).

Названия/расширения этих карт/файлов/контейнеров: KMZ и JNX

В нашу задачу входит научиться самостоятельно создавать такие карты и заливать их в навигаторы.


Про "что_да_как" в этом деле происходит меня попросили написать так же понятно, "как инструкцию по обуванию для негра, который впервые увидел ботинок"(ц).
Поэтому от этого текста не стоит ожидать лаконичной краткости и пунктуальной выверенности. Будет много вводных, будет много другой "воды" и прочих отступлений. Хоть писатель из меня никудышный, считаю важным в этом процессе не только научится соответствовать форме, но и понять содержание, кустарную логику процесса -- легче будет смещаться в стороны и искать свои пути в решении вопросов, -- потому что уйма всяких мелочей и все их не охватишь.

Первая часть уроков-инструкций посвящена формату KMZ.

Устроен он достаточно просто: берутся файлы изображений в формате JPEG (как правило -- это скан бумажной карты или космоснимок), к ним присоединяются файлы топографической привязки KML (Keyhole Markup Language — язык разметки Keyhole, которую и поглотила в своё время Google), а потом всё это оборачивается в разную служебную информацию, понятную прошивке/системе прибора. Естественно не обошлось без серьёзных ограничений. Что же мы имеем в результате:

• максимальное количество файлов -- не более 100 штук (в Montanе можно 500)
• размер одного файла должен быть не более 1 мегапикселя (1024x1024, 512x2048, etc) -- выходящие за рамки сжимаются принудительно
• вес одного файла не более 3 мегабайт (где-то на форуме читал про проблемы, если вес всех файлов превышал 32 мегабайта, но проверять это надо в каждом конкретном случае)
• файлы только JPEG и обязательно не сжатые методом "рrogressive"
• читаются только из директории \Garmin\CustomMaps

Вообще-то этот формат уже можно считать "устаревшим". Но в то же время он прост и настолько быстр в изготовлении, что можно использовать его для каких-то сиюминутных целей -- для одноразовой поездки за грибами или на рыбалку к примеру. Или залить более детальные космоснимки, которые недавно появились, а переделывать основную карту времени нет. Поэтому лично я со счетов его списывать пока не хочу, да и вам не советую

KMZ-карты мы будем делать c помощью программы SAS.Planet -- а) она наша, родная, что меня, если честно, сильно греет; б) она бесплатная; в) с ней не возникает проблем с установкой, освоением и работой -- проще не бывает; г) она мегаресурсная -- тут тебе и космоснимки на любой вкус, тут и "бумага" начиная с Генштаба, ГГС и заканчивая историческими картами; д) и самое главное -- всё делается силами одной программы, с начала и до конца.

Если она ещё не пригрелась на вашем компе, то срочно идите на страницу загрузки, которая через десяток секунд должна начаться автоматически. Устанавливается, как не банально, путём простого перемещения скаченной папки с программой в C:\Program Files. Никаких установщиков. Запускается по даблклик на SASPlanet.exe

Клеить карту мы будем на примере космоснимков, поскольку есть небольшие нюансы. То есть с "бумагой" всё так же по сути, но с масштабами проще -- они или есть или их нет.

01

На данный момент я использую разные версии SAS.Planet.Nightly, так называемые "ночные сборки", а последняя стабильной является v.121010. Местами они немного различаются, но про это я упомяну в контексте.

02

03

Рассмотрим для примера парочку самых актуальных: прямоугольное выделение и сложносочинённый полигон.
• Прямоугольное выделение самое незамысловатое. На два клика мышкой: один раз в верхнем левом углу, второй -- в нижнем правом.
• Для сложного полигона пощёлкать придётся от души. Но памятуя о суровых ограничениях, этого сложно избежать, выбирая длинные извилистые реки или какие-то участки плюс подъездные дороги к ним.

05

06


Но ни Яндекс, ни Гугл, ни кто либо другой, не заказывают спутниково-космических снимков различной степени детализации для каждого своего уровня. Это было бы слишком дорого, да и не совсем разумно. Поэтому другие масштабы формируются из снимков а) или путём 2-х кратного сжатия, когда 4 стандартных тайла/фотографии по 256х256 пикселей (512х512) превращаются в один тайл 256х256 более верхнего уровня; б) или наоборот (но реже), увеличивая тайл в 2 раз (качество от этого, к сожалению, не улучшается)

Для того места, на примере которого я делаю этот мануал, Яндекс использует всего 3 слоя реальных фотографий:

• на z8, а остальные уровни z7; z6 . . . z1 формируются из него
• на z10 лежит метровый снимок, z9 сформирован из него
• на z19 лежит субметровый снимок (пиксель < 1 м 2 ), из которого слои z18; z17 . . . z11 сформированы тем же путём сжатия

Если мы возьмём бумажные карты (Генштаб, ГГС и проч.), то для них реальный уровень всегда один (одна карта -- один масштаб), а остальные уровни формируются по такому же принципу.

В картах KMZ верхнее и нижнее ограничения на уровень отображения задаётся стандартом и зависит. Нет. Давайте сначала разберёмся с терминологией, а то для тех, кто в первый раз с навигатором -- запутаться, как два пальца. А у меня задание, если вы помните.

В Гугл-сервисах и в САС.Планете ползунок надо тянуть вверх -- повышать масштаб. Но понижать уровень, ага :) Почему так -- не знаю, но привыкнуть до сих пор не могу -- и всегда, где возможно, переставляю шкалу масштаба в горизонтальное положение. Но надеюсь понятно: уровень в плюс -- масштаб/зум в минус :))

Так вот, в картах KMZ верхнее и нижнее ограничения на уровень отображения задаётся стандартом и зависит от того, из которого склеена карта. Допустим мы взяли снимки уровня, которому соответствует масштаб километровки (z15). Когда мы зальём их в навигатор, то наша карта включится на масштабе 3 км. (верхний уровень), а выключится только на 20 метрах (нижний уровень). То бишь, при цифровом масштабировании реальное изображение будет уменьшаться только в 4 раза (что не плохо), а увеличиваться в 16 (жопа из пикселей).
Хотя мы помним, что при переходе на один уровень вниз (тем увеличиваем масштаб) количество тайлов при заданном размере увеличивается квадратично (километровка делится на четыре 500-метровки), уменьшая в 4 раза доступную площадь покрытия, но мне кажется, не стоит сильно гнаться за увеличением площади карты, а лучше выбирать уровни, соответствующие если уж не максимальному качеству снимка, то близким к нему. Просто потому, что экраны навигаторов не ретина-дисплеи смартфонов, несовершенство проще добить SD-картами, которые подешевели до каких-то неприличных цифр -- за 2 Gb просят всего 100 рублей.
Но как бы то ни было, картами уровня "z19" можно покрыть около 12 км. 2 площади, учетверяя её каждым щелчком уменьшения масштаба.

07

08


Как определить "правильную" картинку. Как ни странно, самый оперативный способ -- чисто визуальный. Правда нужна некоторая сноровка. Если подходить субъективно, то слой перед последним кажется самым резким, а следующий немного пиксельным, растянутым. Но обычно такой эффект создаёт "цифровой шум", присущий электрическим фотографиям -- а на самом деле он и есть наш "правильный".
Кроме того, при переходе на слой с отсутствующими тайлами можно увидеть "подсказки" (картинка справа), появляющиеся в разных местах карты. Это означает, что слой создан "программным" методом.

Второй способ -- более "научный". Картографические сервисы не отдают картинок ниже уровня, который у них есть и ползунок масштаба при этом замирает в своём крайнем значении (или не замирает, а просто не выводит картинку и честно пишет, что такой нет).

Сравнение


Чтобы отключить несуществующие уровни в SAS.Планете, нужно в меню "Вид" снять галочку напротив строчки "Брать карты из меньших масштабов" и отсутствующие тайлы выводиться не будут:

13

    Выбор сделан, возвращаемся в окно "Операции с выделенной областью".
    Оно сразу откроется на вкладке "Загрузить"

10


Если вы уже определились с масштабом слоя, то нужно выполнить всего 3 пункта:

11

5.1. Проверить тип карты.
5.2. Удостовериться в правильности масштаба -- по умолчанию он будет указывать на зум, на котором делался полигон, и далеко не тот, что нужен.
5.3. Снять галочку напротив пункта "Закрыть окно после старта" -- мы же доведём дело до конца? :) Как только всё проверим -- жмём "Начать".

12

По окончании процесса закрываем окно загрузки и переходим на следующую вкладку.

09

• В подменю "Формировать для. " выбрать "Как на главной карте", или тут карту, которая нужна.
• Выбрать масштаб (на картинке стоит z19).
• Выбрать, что показывать -- существующие тайлы или отсутствующие. Если выбрать отсутствующие -- именно они изменят тон на более тёмный, если существующие (как на картинке) -- потемнеют они.

Убедившись в равномерности заполнения слоя можно двигаться дальше.


Но прежде, для прояснения тонкостей и во избежание возможных проблем, хочется процитировать маленький FAQ по загрузке, взятый на форуме программы:

При загрузке некоторых карт (обычно Google) сперва все идет нормально, а потом мне говорит что "Такого изображения нет на сервере", хотя при просмотрте в браузере этот регион прекрасно показывается. Что это?!

ЭТО НЕ БАГ ПРОГРАММЫ SAS.Planet - это называется "бан на сервере", и им обычно грешит именно Google.
После примерно 1000 загруженных тайлов сервер обычно банит по IP. в программе реализована некоторая защита от бана (путем задержки закачки тайлов), но 100% гарантии это не дает. Основной инструмент, которым пользователь может управлять баном - параметр Sleep в zmp-файле. Таким образом, если после 10 минут работы с программой больше ничего не загружается - поздравляем! Вас забанили, и единственный выход - ждать сутки (иногда меньше), больше ничего делать не надо. После этого времени всё встает на свои места, и можно опять начинать качать (до следующего бана). 100% гарантированного обхода бана в программе SAS.Planet пока что нет.


При загрузке карт мне говорит что "Такого изображения нет на сервере", хотя при просмотрте в браузере этот же регион прекрасно показывается. Что это?!

ЭТО НЕ БАГ ПРОГРАММЫ SAS.Planet - это называется "на сервере сменили версию карт".
Для решения этого вопроса Вам надо открыть файл ZMP соответствующей карты, найти в нем строку "DefURLBase=" (например, DefURLBase=http://mt.google.com/mt?v=w2p.99&hl=ru) и заменить в нем имеющиеся цифры версии (например, "w2p.99") на актуальную на настоящий момент версию на сервере. Сохранить изменения и рестартовать программу SAS.Planet.
Автоматического отслеживания смены версий карт в программе SAS.Planet пока что нет.


При загрузке карт в браузере - я вижу новые районы и обновленные карты, а при закачке программой SAS.Planet - я этого не вижу, на той же карте. Как так может быть?

ЭТО НЕ БАГ ПРОГРАММЫ SAS.Planet - это называется "на сервере используют более новую версию карт".
Действия по изменению версии карт в программе SAS.Planet на актуальные - описаны пунктом выше.


Хочу всегда иметь самые свежие версии zmp!


Мои карты очень медленно грузятся.

Если у вас карты грузятся много медленнее чем в браузере на сайте - это может быть потому, что в файле xxxxx.zmp для соответствующей карты параметр Sleep (задержка перед загрузкой каждого последующего тайла) равен по умолчанию какому-нибудь положительному значению (например, Sleep=1000). Это сделано для попытки обойти бан данной карты. Можете уменьшить этот параметр, или вовсе поставить 0 (но тогда возрастет вероятность бана).


Мне постоянно сообщает "Отсутствует подключение к Интернет!", хотя подключение есть

Проверьте Ваш файрвол (включая встроенный в Windows) на предмет блокирования соединений программы SAS.Planet, а также общие настройки Интернета в самой программе. Особенно это касается случаев с прокси-сервером.
Программа SAS.Planet не использует каких-то специальных своих собственных режимов доступа к Интернету, и используются сугубо возможности Вашей операционной системы и окружения. Если у Вас работает интернет-браузер - то заработает и SAS.Planet. Если же что-то блокируется при работе SAS.Planet - проблема безусловно на Вашей стороне.


Почему я вижу детальные снимки нужного мне региона в программе Google.Земля, а при просмотре этого региона через SAS в карте Google - я их не вижу?

ЭТО НЕ БАГ ПРОГРАММЫ SAS.Planet.
Google.Земля - совершенно другой сервис, чем сервис Google.Карты (где SAS при своей работе использует именно сервис Google.Карты, но не Google.Земля). Общее у этих двух лишь одно - владелец (компания Google), все остальное - совершенно различное, включая логику работы, проекции карт и собственно серверы, откуда идет контент.
Но есть и надежда: обычно обновления регионов в Google.Земля со временем перекочевывают и в Google.Карты, и тогда они могут стать доступны и в программе SAS.Planet. Обычно это занимает что-то в районе месяца-полутора. Иногда больше, иногда меньше. Иногда - никогда. Гарантии, возможности, точные сроки конкретных обновлений в обоих сервисах и степень их "взаимопроникновения" друг в друга известны только владельцу - Google, но никак не разработчикам программы SAS.Planet.

14

Начинаем заполнять поля:

15


16

7.5. Поле "Наложить" и проекцию к нему оставляем пустыми.
7.6. Так же не ставим никаких галочек напротив пунктов "Применять коррекцию изображений" и "Накладывать отображаемые метки" (если последние не нужны конечно). Если есть пункт "Сохранять PNG с прозрачностью" (v.121010) -- снимаем выделение -- здесь эти картинки точно не нужны.
7.7. И в поле "Создавать файл привязки" тоже ничего не ставим -- привязка KML у нас внутри KMZ-файла.


17

Всё, нажимаем "Поехали" и после окончания склейки.

18

. идём проверять свои файлы:

Ну что, осталось только залить их в прибор, путь до \Garmin\CustomMaps уже заказан :)

У меня есть файл KML, размер которого 400 МБ - 1 неделя путешествия и 5000 км. Он уже лишен несущественных данных. GPX-файл с размером около 80 МБ или 2,5 МБ. Файл KML составляет около 30 МБ. Я не уверен, сколько там маршрутных точек, но должно быть сотни тысяч.

Как я буду собирать его на Картах Google? Есть ли способ уменьшить файл без ущерба для качества моих треков? Я использую jQuery и API Карт Google v2 или v3.

Ну, очень легко использовать KML-файл с API Карт Google. Примером может служить следующее:

Но у вас есть проблема с вашим большим файлом KML. Максимум тока для несжатого файла KML является 10MB , намного меньше , чем ваши 30Мбы. См. Ссылку на поддержку KML здесь .

По моему опыту добавление больших KML-файлов на карту также очень медленное. Поэтому загрузка вашего файла размером 9 МБ займет много времени. Я предлагаю вам уменьшить размер файла.
Вам действительно нужны все эти сотни тысяч путевых точек? Каков был шаг входа в журнал? Как каждые 10 секунд? Вам нужно, чтобы ваше местоположение было до метра, не все ли 100 метров? Btw: Вы работаете над интернет-вещами? Я помню, Google Google поддерживает любые большие KML-файлы (но, конечно, больше, чем API карт).

Я не знаю никаких программ для отслеживания треков или «удаления путевых точек», но там наверняка есть такие вещи, и вам нужно будет сделать ваш KML-файл меньшим (также 30 МБ по-прежнему звучит очень много для меня, уверены ли вы это только путевые точки или у вас есть decriptions и т. п. в KML? Не могли бы вы сократить их? Цвета? Используйте глобальные цвета KML вместо определения цвета для каждой путевой точки!)

Я разделил намного меньший файл kml / kmz на несколько кусков. Однако я все же заметил MASSIVE замедление, когда я попытался приблизиться к пределу. Как правило, Google Maps не будет показывать маркеры, когда я буду на полной карте, и сделал бы это только в том случае, если бы я увеличил масштаб (и, следовательно, у него было гораздо меньше маркеров).

Часто он показывал только маркеры на части фрагментов карты, а остальные плитки карт были пусты.

Было бы целесообразно импортировать ваш KML-файл в таблицу слияния.

Последующая производительность будет впечатляющей по сравнению с добавлением наложений на основе файла KML.

По какой-то магической причине, когда вы создаете KMZ с помощью Geosetter> export to google earth. KMZ это создает, хотя и намного больше, чем 5 МБ загрузки в Google Earth без проблем.

Ну во первых, сам по себе формат DXF текстовый и гораздо больше, чем родной DWG, по сему еголучше сохранить в DWG.
Во вторых, существуют стандартные для акада способы уменьшения обьема файла, например команда PURGE.
В третьих, в акад 2004 насколько я помною обее оптимизирован, по сравнению с 2000/2002 формат файла, т.е. он заимает меньше места
В четвертых, где-то на кадовских сайтах лежить програмка (уж не помно однако, склероз) удаляющая линии наложенные друг на друга

ЗЫ. Но я думаю что первых двух способов будет вполне достаточно 8)

А че за проблема с распечаткой?
Если не хватает памяти, в настройках принтера поставь галочку напротив "использовать виртуальную память" или "in computer" чтото в этом роде в зависимости от модели принтера.
И печатай на здоровье! :wink:

1.purge
2.если есть экспресс - express/modify/delete dublicate obiject
3.recover (если аудит выдает ошибки)

Мне эти 3 вещи офигенно помогают,иногда файл с 15 метров до 3 сбрасывают

VOVA,какие беды могут меня настигнуть,если я буду удалять дублирущие объекты?
Этой функцией пользуюсь постоянно,пока ничего не замечал. [sm1001] Иван> Конечно, многое зависит от правильных установок. Рассмотрим ситуацию-линия (пусть стена) и вплотную к ней прямоугольник (пусть панель). Может получиться так, что у прямоугольника отрежется сторона, прилегающая к стене, или наоборот, линия стены прервется. Зависит от того, что наверху. Поэтому я и призывал к осторожности. Что бы подобное случилось надо поставить галку – игнорировать слой, которая по умолчанию не стоит ( я не допускаю мысли что стены и панели лежат в одном слое) Gap> Пример? пожалуйста. Готовится основа для чертежа расстановки оборудования. Для этого архитектурный чертеж этажа надо как следует почистить, удалить ненужное и все оставшееся перекрасить в цвет, у нас это №8. Там может быть несколько сотен (и даже более тысячи) слоев. Некоторые делают так: после чистки все, что осталось, помещают в один слой Background (Oснова). А дальше команда Overkill со всеми вытекающими последствиями. Бывают и другие случаи. Например, на одном плане сразу несколько этажей, наложенных друг на друга. Надо манипулировать слоями, чтобы получить нужное изображение. Но авторы чертежа не дали инструкций, как этим пользоваться. Начинаешь чистить, включая команду Overkil и получаешь порой неожиданные результаты.

Добрый день.
Столкнулся с подобной проблемой. Даже простые чертежи, которые ранее были до 100кБ, сейчас (после некоторых изменений, дополнений) разростаются до 500-1500кБ. Отключаю слои, Purge - не дают желаемого результата.
Для примера открыл один чертеж и все оттуда вытер + Purge. Сохранил. Результат 1.1Мб.

Читайте также: