Создание бота

Подумываю о создании бота. Есть какие-нибудь материалы/примеры для ознакомления?
Хочу понять общие принципы работы - он просто по API дергает квадраты и вносит изменения или есть более хитрые и более правильные идеи?

Это зависит от того, ДЛЯ ЧЕГО этот бот :slight_smile:
А самая правильная идея - обрабатывать диффы

да, мысль уже заработала дальше, видимо достаточно будет оффлайн обработки JOSM’ом и последующей заливки почищенного файла. Диффы возьму на карандаш :slight_smile:
А нужно изрядно почистить дорожный граф.

Что он будет делать? И на чем Вы будете его писать? Могу помочь с С++ и php…
Вот уже выкладывал наработки: php и C++
Это исходнички, которые позволяют отправлять запросы на сервак из кода и получать ответы… возможно пригодятся.

Посмотрите, кстати, на пример встраивания питона, если интересно.
Пишется очень просто. Можно писать хардкорную часть на С++, а управлять ей скриптами на питоне… т.е. менять алгоритмы на лету без перекомпиляции программы. Правда, желательно чтобы часто вызываемый код был реализован на С++.
Можно “опитонивать” классы, функции и т.д. легким движением руки)


    // например так приручаем С++ класс Way
    py_namespace["Way"] = class_<Way>("Way")
        .def_readwrite("id", &Way::id)
        .def_readwrite("visible", &Way::visible)
        .def_readwrite("user", &Way::user)
        .def_readwrite("timestamp", &Way::timestamp)
        .def_readwrite("closed", &Way::closed)
        .def_readwrite("refIds", &Way::refIds)
        .def_readwrite("tags", &Way::tags);

x10kHz, спасибо, наверняка пригодятся.
Задумал править дорожную сеть в Штатах. Там после Tiger’а сущий кошмар - наложение сегментов дорог и, самое распространенное, узлов пересекающихся дорог. Вот обдумываю наиболее простые подступы к решению задачи

В таком случае проще сносить (безграмотно) импортированные данные и перезаливать обработанные исходные шейпфайлы заново.

Не думаю. Там есть полезная особенность - все совпадающие узлы/дороги действительно строго совпадают. Насколько я понимаю, их удастся пофиксить на 98% в автоматическом режиме.
Вот такой вопрос родился: если из файла, сгенерированного JOSM’ом, вырезать все элементы, кроме помеченных “modify”, полученный файл можно будет заливать на сервер?

В конце этой страницы есть программа Merge
http://wiki.openstreetmap.org/wiki/WikiProject_Corine_Land_Cover/Corine_Data_Import
Если бы она была на с++, то ей даже можно было бы пользоваться :slight_smile: