Конвертация OSM в Navitel

Потому что его сплошь и рядом ставят на обычные дворовые проезды. В том же Минске недавно кучу удалил, но ещё больше осталось.

Ну так это не значит, что его не нужно конвертировать. Это значит, что его лепить не надо куда попало. И всё.

А я чего говорю? :slight_smile: Просто в последних конфигах от dimazz они совсем были исключены при наличии service=parking_aisle. А так как ошибок таких очень много, то и проезды пропали во многих местах. Если бы это не было массовой ошибкой то никто бы и не заметил.

Пермский край


ПРЕДУПРЕЖДЕНИЕ: В карте содержится слишком много объектов. Пожалуйста, разрежьте карту на меньшие части.

ОШИБКА: Экспорт не удался.

Тажа самая проблема что и с Карелией. Надо резать на части.

Т.е. Пермь и Петрозаводск будет одним файлом, а область другим. Как будет время поправлю в скриптах.

не надо города одним файлом, лучше пополам область, а потом на 4 части. Так удобнее пользоваться и скачивать.

а мне пофиг лишь бы было

Kostik, ты сейчас поддерживаешь выгрузки навитела на Рамблере? Может добавить симлинк или банально скопировать Крым в Россию, чтобы вот такие персонажи унялись?

Zverik, Могу. Но жду пока поднимут нормальные выгрузки на гислабе. Да и границы поправят. Хотя как на переходный момент сам подумывал так сделать. Но опять таки только в ручном режиме.

сделали ведь и не разрезая на части

Ага. Скачал. В GME генерализовал и отконвертировав залил. Я так делать могу… иногда, но не всегда.
PS: Почему то скрипт CompressMP.vbs работающий у меня локально с теми же скриптами, на сервере не отрабатывает.

А что за CompressMP.vbs, где можно посмотреть ? Под GME сложно писать скрипты, никакой документации нет. Вот и собираю всё что работает, чтобы потом разбираться на примерах.

CompressMP.vbs Делает генерализацию и ещё что то. Файл становится значительно меньше по размеру.


Option Explicit
Dim a
Set a = CreateObject ("GPSMapEdit.Application.1")
a.MinimizeWindow
Dim fso
Set fso = CreateObject ("Scripting.FileSystemObject")
Dim strRoot
strRoot = fso.GetAbsolutePathName (WScript.ScriptFullName + "\..\")
Dim pMapsFolder
Set pMapsFolder = fso.GetFolder (strRoot)
Dim pFile
For Each pFile In pMapsFolder.Files
    Dim strExt
    strExt = LCase (fso.GetExtensionName (pFile.Path))
    If strExt = "img" Or strExt = "ntm" Or strExt = "rus" Or strExt = "mp" Then
        a.Open pFile.Path, False

        Dim strOutFile
        strOutFile = fso.GetParentFolderName(pFile.Path) + "\" + fso.GetBaseName (pFile.Path) + ".mp"
        a.SaveAs strOutFile, "polish"
    End if
Next
a.Exit

Обрабатывает все файлы в папке в которой был запущен. Т.е. нельзя сказать из командной строки обработать конкретный файл. Если кто доработает, то это решило бы некоторые проблемы.

Возможно так

Option Explicit
Dim a
Set a = CreateObject ("GPSMapEdit.Application.1")
a.MinimizeWindow
Dim fso
Set fso = CreateObject ("Scripting.FileSystemObject")
Dim strRoot
strRoot = fso.GetAbsolutePathName (WScript.ScriptFullName + "\..\")

Set objArgs = WScript.Arguments
Dim pFile_Path = objArgs(0)

Dim strExt
strExt = LCase (fso.GetExtensionName (pFile_Path))

If strExt = "img" Or strExt = "ntm" Or strExt = "rus" Or strExt = "mp" Then
    a.Open pFile.Path, False

    Dim strOutFile
    strOutFile = fso.GetParentFolderName(pFile_Path) + "\" + fso.GetBaseName (pFile_Path) + ".mp"
    a.SaveAs strOutFile, "polish"
End if
a.Exit

Скорее всего этот скрипт только открывает и заново записывает файл в mp. В результате убираются лишние пробелы и др. символы которые не нужны mp формата. Но генерализация не проводиться и размер nm2 остается таким же.
Провел опыт:
взял файл нижегородской области, mp 134Мб конвертировал в nm2 получилось 18.4М
запустил CompressMp, mp стал 107Мб , nm2 не изменился 18.4М
провел вручную генерализацию, mp стал 100Мб, nm2 получился 18.1 М

Найти бы как это сделать в скрипте, какая функция за это отвечает. Но скорее всего будет работать только на лицензионном GME.

http://forum.navitel.ru/index.php?showtopic=119&st=50&p=187088&#entry187088

На сервере лицензионный GME, сами же тут скидывались на обновлении лицензии не так давно.

И как это должно выглядеть в vbs скрипте?