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

Добавить строки перед сохранением файла


	Dim e
	Set e = a.Edit
	e.GeneralizeNodesOfPolylinesAndPolygons()

У меня сразу в файле конвертации прописаны https://www.dropbox.com/s/e7727zktuprncx2/ConvertToNm2.vbs

На сервере используется скрипт mp2nm2.vbs, пока что с ходу не понял куда этот код добавить.

перед - a.SaveAs strOutFile, “polish”

Там такого нет, вот текст скрипта.

После этого

'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

Ну это если без всякого извращения с возможными ошибками и их обработкой

freeExec


'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

На выходе файл не генерализованый получается.

Dim e
Set e = a.Edit
e.GeneralizeNodesOfPolylinesAndPolygons()

GME.GeneralizeNodesOfPolylinesAndPolygons()

Это удаляет точки для упрощения карты? А можно ли их не удалять, а то карта выглядит как-то “криво”. Или это из-за округления координат точек? В таком случае, можно ли их не округлять, чтобы квадратные здания были квадратами, а не четырёхугольниками? Неужели размер карты очень сильно увеличится?

Нет, кривые здания от притягивания координат к сетке. При 26 бит сетка мелкая, при 24 - крупная (зато выходной nm2 меньше размером).
Генерализация, которая указана как функция выше, удаляет лишние точки в линиях. Видели наверное дороги, сконвертированные из треков ? Вот они прореживаются в полише.

freeExec


'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 бит). Но это пока только просьба.

Я для 7дорог только в 26бит и собираю, для Навитела это не прокатит. Упрёмся в:


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

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

Да… Резать область на части - уже извращение. То есть, на данный момент решения нет. Обидно

Попробуй так и на этом я сдаюсь.

'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. Маршрут до границы с Адыгеей прокладывает по дорогам далее по прямой до пункта назначения. :frowning:

Привет всем. Карта РБ на навителе 8.7.0.55 не видна на экране при масштабах от 5 до 120 метров. От 120 работает корректно. К примеру, с Украиной накого нет. Спасибо. Надеюсь можно подправить.

Alexey_ND, что то не наблюдаю проблем описанных Вами… Версия 8.7.0.55 на китайском JiaYu G3 все видно на всех масштабах…

Началось все как роутинг вынесли в отдельный файл. РАЗОБРАЛСЯ - я в атлас достопримечательности РБ подкладывал. Спасибо и извините - ошибочка вышла.