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

toorboalex, отписался в почту.

Fortress в очередной раз попрошу одну фичу.
Исправил сейчас 1314 ошибок по Таиланду. Клацкать на каждую букву J крайне утомительно. Поэтому нужна кнопка “Загрузить все ошибки”.
Как должна она работать:
Для примера берём
http://yav.gis-lab.info/settlements/n27503886-r1704857-o05401000-k2500000100000
Находим для примера улицу Багратиона клацкаем по иконке и все дома по этой улице загружаются в josm.
Так и с ошибками.

Paspartu, нужно менять скрипт генерации файла ошибок: http://wiki.openstreetmap.org/wiki/User:Chilin/mp2nm2
Я плохо дружу с vbs, так что жду от тебя патч.

А можно актуальную версию скрипта?

Fortress, раз ошибки по Тайланду исправили, запусти конвертацию еще раз.

Можно

Запустил.

Я тоже не знаю vbs, но код самоуничтожения не обнаружил.
Надо разобраться, куда ведёт ссылка http://navitel.osm.rambler.ru/err.php?country=…&region=…&action=fixed и править тот скрипт.

Это скрипт проверки, который генерирует html страницу.
Эта страница как раз и отображается с кнопками P и J.
Хотелось бы тоже увидеть исходник err.php

Кстати, строку 201 этого скрипта на мой взгляд лучше поменять на

fHtml.WriteLine "<a href=http://osm.org/?" & Left(i2,InStr(i2,"JJJ")-1) & "&zoom=18 target='_blank' title='Show at OSM'>" & NErr & "</a>(<a href=http://www.openstreetmap.org/edit?" & Left(i2,InStr(i2,"JJJ")-1) & "&zoom=18 target='_blank'> Potlatch 2 </a>|<a href=http://localhost:8111/load_and_zoom?" & Replace((Mid(i2,InStr(i2,"JJJ")+3)),",",".") & " target='_blank'> JOSM </a>) <br>"

(добавить в конце
) Иначе, когда ошибок много (например, как тут: http://navitel.osm.rambler.ru/err.php?country=Great_Britain&region=Great_Britain-England) - это смешивается в кучу и мышой попасть тяжко. Да и J с P лучше заменить на полные Josm и Potlatch 2

И про мою просьбу не забудьте.

Друзья в osm’е помогите ))
После праведного труда по исправлению ошибок в Таиланде мне пришло письмо от Willi2006 следующего содержания:

Помогите на литературном английском (а не на машинном) написать ответ, что все правки были сделаны не по злому умыслу, а на общее благо.
Заранее спасибо.
ЗЫ Всё таки зря так быстро опять запустили конвертацию Таиланда. Надо было пару дней подождать.
ЗЫЫ Ошибки от 10.10.2012 по Таиланду исправил. Завтра - после-завтра можно запустить.

Ну как-бы скрипт выложен, подправь плиз как надо))

Насчет Josm и Potlatch 2 согласен, насчет
может лучше побольше пробелов и align=“justify”?

“Hi. All of these nodes and ways were duplicated (there are another ways and nodes at the same place) so i just deleted objects, created by mistake. Sorry for writing Russian and thanks for you understanding.”
И старайся правки в других странах комментировать на английском с вменяемым содержанием)

Нужно было учитывать временнОй лаг, когда просил запустить конвертацию))

P/S: err.php не содержит в себе ничего интересного, просто выводит файл с ошибками в браузер либо удаляет его в зависимости от параметров.

Тогда не
а

&nbsp;&nbsp;

Тогда надо думать, как поступать с файлом, который пометили как исправленный.
У меня следующее предложение
При нажатии на “зеленую галочку” -

  1. Переименовываем html файл с ошибками в file_name_fixed_time().html (т.е добавляем fixed и время)
  2. Галочка становится серой, но остается отображаться.
  3. При следующем проходе валидатора - если ошибок нет, то удаляем файлы .html и убираем галочку.

P.S - а вообще - давайте прикрутим авторизацию OAuth (http://wiki.openstreetmap.org/wiki/OAuth)
Если надо - помогу. И тогда все вопросы отпадут.

а с чем это связанно? неужели совсем безнадёжно все?

виноват не весь форум облез, щас нашёл… жаль… можете не отвечать

dimonster wrote:

...Чтобы сконвертировать карту в формат nm3 нужен новый конвертер. А он есть только у ЗАО "ЦНТ". И они его никому не дают. ...

Вотт теперь понятно. Значит пока снесу 5.5.1 и верну 5.0.3, потом к след лету посмотрю что лучше.
Благодарю за пояснения!

З.Ы. хреного что нельзя удалить сообщение это пришлось отредактировать, дабы не мешать им никому…

Да всё очень просто, на мой взгляд: надо убрать возможность удаления файла.
Желающих нажать “я всё исправил!” меньше не станет, и всё равно придётся проверять руками, есть ли эти ошибки, или нет.
Всевозможные валидаторы работают именно по такому принципу, и особых проблем это не доставляет. Да, изредка сталкиваешься с исправленными ошибками, но, к сожалению, количество ошибок значительно превышает количество исправляющих…

Можно, конечно, давать нажимать эту галку только зарегистрированным в ОСМ людям (и логгировать это событие), но надо ли?..

Ну как сказать. А не зарегистрированный на OSM человек разве может исправить что то?

Я думаю пока сделаю, чтобы выдавалось предупреждение перед удалением. Если это не поможет, прикрутим OAuth. Хотя если честно, сейчас этим заниматься совсем некогда. Я уже пытался как-то сделать OAuth на сайте, но с полпинка оно не завелось, а разбираться некогда было, так и забросил…

По поводу “Загрузить все ошибки”:

  1. Скрипт работает только с зарегистрированной версией GPSMapEdit, поэтому не смогу протестить
  2. Как один раз щёлкнуть по ссылке и что бы загрузилось много
    http://localhost:8111/load_and_zoom?left=...&right=...&top=...&bottom=
    я так и не понял… поэтому сделал для себя это локально:
Dim fso, ts, s, MyArray(), i, p, o
'скачивание файла с ошибками
o="http://navitel.osm.rambler.ru/err.php?country=Thailand&region=Thailand"
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
'подключение
oXMLHTTP.Open "GET", o, 0
'получение файла
oXMLHTTP.Send
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3 'разрешение на чтение и запись
oADOStream.Type = 1 'тип данных - Binary
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
'сохранение (с перезаписью файла при необходимости)
oADOStream.SaveToFile "err.html", 2
'
Const ForReading = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("err.html", ForReading)
i=0
Do Until ts.AtEndOfStream
	s=ts.ReadLine
	p=instr(1,s,"http://localhost:811")
	if p <> 0 then
		i=i+1
		ReDim preserve MyArray(i)
		s=mid(s, instr(1,s,"http://localhost:811"), len(s)-instr(1,s,"http://localhost:811")-24)
		MyArray(i) = s
'		MsgBox MyArray(i)
		Set wShell = CreateObject("WScript.Shell")
		wShell.Run MyArray(i)
		WScript.Sleep 500
	end if
Loop
ts.Close

Сохраняем этот код с расширением vbs, в 3 строчке меняем на ту страницу где ошибки (много ошибок) и запускаем (само собой при запущенном josm и включенном в нём Удалённом управлении).
Код протестирован в windows 7.

Вот здесь ссылка “Загрузить все в JOSM” работает так, как ты хочешь?