Как уже говорилось на багтрекере, если случайно или нарочно удалить какую-либо непустую категорию меток, то метки вместе с ней не удалятся, а будут торчать в файле marks.sml, занимая место, притом будучи недоступными в программе. Поэтому так удалять нельзя. Надо сначала удалить все метки этой категории, а потом уж и саму категорию.
Это неудобно. Например, импортировав какой-нибудь kmz обновления Гугль Мапс в категорию "kmz", посмотрев его сколько нужно, затем захотели мы его заменить на новый. Чтобы удалить все метки этого kmz, надо по очереди ткнуть курсором в каждую, нажать кнопку удаления и потом ещё нажать кнопку подтверждения удаления. Процесс может либо занять часы, либо вынести мозг.
Пока эта задача решается авторами программы, я тут на досуге написАл скрипт, который удаляет лишние метки из файла marks.sml. То есть, мы можем сначала удалить категорию, а потом все метки, которые ранее в неё входили. Скрипт проверяет, существует ли в файле CategoryMarks.sml указанная для данной метки категория. Если существует, запись о метке переносится в новый .sml файл, в противном случае переносится в файл-отстойник. Также в отстойник помещаются записи, в которых поле categoryid отсутствует совсем. Исходный файл marks.sml остаётся в целости и сохранности, зато создаётся файл marks_new.sml, который можно затем проверить и, если всё в порядке, переименовать в marks.sml.
Скрипт надо поместить в папку ...\SASPlanet\.