Существует ли способ быстро вносить мелкие правки в xml код?
Бывает, известен список ошибок в тегах, в разных местах карты, которые хотелось бы исправить.
Сейчас запрашиваю в строке браузера нужный элемент по id примерно так: http://www.openstreetmap.org/browse/way/51943797
Затем нажимаю “править”, дожидаюсь, пока редактор загрузит все окружающее пространство, вношу правку в теги, сохраняю.
Самая длительная операция - загрузка полной карты заданного участка местности, что мне совершенно не нужно.
Можно ли как-то ускорить операцию?
Куча способов. Выбрать нужное можно через API или XAPI или osmosis’ом из свежего дампа России, пофиксить - josm или sed в простых случаях, в сложных скрипт на люб(им)ом языке. Залить можно josm’ом, можно напрямую через API.
Ну так а можно хоть один способ описать в деталях.
Опять же, XAPI - readonly, а потому к данной задачи никак подойти не может.
josm я сам для себя исключаю - на редкость тормозная программа.
По поводу API - пока понял, что можно получить файл с данными. То есть мне предлагается ручками набирать http-запрос, согласиться на скачивание файла, открыть его текстовым редактором, отредактировать, сохранить изменения, при помощи API pfuhузить файл обратно?
Или писать программу, которая все это делает?
PS. Попробовал жосм. Еще раз убедился, что программа сделана криво. Но для данной задачи, действительно, работать получается несколько быстрее, чем тем путем, которым я пользовался раньше.
Так что спасибо.
Но неужели нет ничего попроще?
Новой жосмы?
На самом деле подразумевалась простенькая консольная программа, которая, пользуясь заранее подготовленным списком ID, скачивает объект, проверяет, что объект не подвергся правке с момента внесения в список ID, вносит правку и отправляет обратно на сервер.
По первому посту - ой, ё-ё-ё… Браузер и Потлач лучше джосма?
Если хочется консольных решений, тогда можно скачивать xml чем-нибудь типа curl, править sed, заливать с логином-паролем тоже чем-нибудь. Но, поверьте, с использованием джосма всё будет куда как проще.
Любым доступным способом.
Можно построчнысм сравнением всех тегов объекта, а можно просто сравнить одну цифирку в номере версии или последнего ченджсета.
Вообще-то он требует пароль от моей учетной записи в OSM.
С одной стороны, я понимаю, что так и должно быть, с другой - раздавать пароли направо и налево я считаю неправильным.
Мой пароль должен храниться только в двух местах: непосредственно в базе OSM (естественно, не на карте) и у меня в голове. Получается, что написание сервисов для OSM неизбежно приводит к тому, что автор сервисов получает в свое распоряжение пароли ВСЕХ участников OSM, которые когда-либо пользовались этим сервисом.