'Export to nm2
if scrKey ="-NOVERIFY" or scrKey = "" then
if tmpNavitel = -1 then
dim nm2Path
nm2Path = mapFolder+mapName+".nm2"
On Error Resume Next
Err.Clear
Ну это если без всякого извращения с возможными ошибками и их обработкой
'Export to nm2
if scrKey ="-NOVERIFY" or scrKey = "" then
if tmpNavitel = -1 then
dim nm2Path
nm2Path = mapFolder+mapName+".nm2"
On Error Resume Next
Err.Clear
Dim e
Set e = a.Edit
e.GeneralizeNodesOfPolylinesAndPolygons()
GME.SaveAs nm2Path, "navitel-nm2"
On Error GoTo 0
if fso.FileExists(nm2Path) then
' call LogMsg("Exported file: "&nm2Path)
else
' call LogMsg("File: "&nm2Path&" does't exported. Use VerifyMap.")
end if
End If
End if
GME.Exit
Это удаляет точки для упрощения карты? А можно ли их не удалять, а то карта выглядит как-то “криво”. Или это из-за округления координат точек? В таком случае, можно ли их не округлять, чтобы квадратные здания были квадратами, а не четырёхугольниками? Неужели размер карты очень сильно увеличится?
Нет, кривые здания от притягивания координат к сетке. При 26 бит сетка мелкая, при 24 - крупная (зато выходной nm2 меньше размером).
Генерализация, которая указана как функция выше, удаляет лишние точки в линиях. Видели наверное дороги, сконвертированные из треков ? Вот они прореживаются в полише.
'Export to nm2
if scrKey ="-NOVERIFY" or scrKey = "" then
if tmpNavitel = -1 then
dim nm2Path
nm2Path = mapFolder+mapName+".nm2"
On Error Resume Next
Err.Clear
GME.GeneralizeNodesOfPolylinesAndPolygons()
GME.SaveAs nm2Path, "navitel-nm2"
On Error GoTo 0
if fso.FileExists(nm2Path) then
' call LogMsg("Exported file: "&nm2Path)
else
' call LogMsg("File: "&nm2Path&" does't exported. Use VerifyMap.")
end if
End If
End if
GME.Exit
Тоже самое. На выходе файл не генерализованый получается.
И насколько сильно это уменьшение размера? Я лично готов скачивать карту большего размера. В идеале, хотелось бы иметь 2 версии nm2 карты: большая и красивая (26 бит) и маленькая, но некрасивая (24 бит). Но это пока только просьба.
'Export to nm2
if scrKey ="-NOVERIFY" or scrKey = "" then
if tmpNavitel = -1 then
dim nm2Path
nm2Path = mapFolder+mapName+".nm2"
On Error Resume Next
Err.Clear
Dim edit
Set edit = GME.Edit
edit.GeneralizeNodesOfPolylinesAndPolygons()
GME.SaveAs nm2Path, "navitel-nm2"
On Error GoTo 0
if fso.FileExists(nm2Path) then
' call LogMsg("Exported file: "&nm2Path)
else
' call LogMsg("File: "&nm2Path&" does't exported. Use VerifyMap.")
end if
End If
End if
GME.Exit
К сожалению, не генерализует. Но на сервере сработал CompressMP.vbs с добавленными строчками генерализации. Но как выяснилось этого мало (для Карелии по крайней мере), нужно ещё “Удалять дупликаты объектов”:
Может кому то попадалось как это делать пакетно?
Но ведь от точности координат количество объектов не меняется? Или “В карте содержится слишком много объектов” = “Размер файла слишком большой”?
Я вот что подумал: Реально ли для уменьшения размера этого файла конвертировать отдельно областной центр, отдельно остальную область? И есть ли в этом смысл?
Уменьшился размер файла роутинга Краснодарский край и Адыгея Russia-KDA-routing.nm2 11 693 КБ от 29.03.2014 на сегодняшний день Russia-KDA-routing.nm2 10 750 КБ от 18.04.2014. Маршрут до границы с Адыгеей прокладывает по дорогам далее по прямой до пункта назначения.
Привет всем. Карта РБ на навителе 8.7.0.55 не видна на экране при масштабах от 5 до 120 метров. От 120 работает корректно. К примеру, с Украиной накого нет. Спасибо. Надеюсь можно подправить.