[WIP] Синхронізація amenity=recycling з replay.org.ua

Відповідно до http://wiki.openstreetmap.org/wiki/Automated_Edits/Code_of_Conduct#Discuss_your_plans
повідомляю і пропоную обговорити той факт, що найближчим часом я створюватиму бота для синхронізації елементів OSM з amenity=recycling і бази даних replay.org.ua.
Проект пишу на python3 з використанням osmapi. Код перед запуском викладу на github.

Дані OSM братиму через Overpass-API:

ukraine_osm_id = 60199
kyiv_osm_id = 421866
area_id	= 3600000000 + kyiv_osm_id

overpass_query='''
[out:json];
(
	node["amenity"="recycling"](area:{0:d});
	way["amenity"="recycling"](area:{0:d});
);
foreach(
	(
		._;
		>;
	);
	out meta;
);
'''.format(area_id)
DATA_URL="http://overpass-api.de/api/interpreter?data="+''.join(overpass_query.splitlines()).replace("\t","")

Чому саме бота, а не валідатор? Є стовідсоткова довіра до даних replay.org.ua?
Чи є плани щодо розробки сервісу синхронізації чи порівняння для поі іншого типу: заправки, банки, відділення Нової Пошти тощо?

Там є багато точок, які відсутні у OSM, і їх я буду додавати. Видалення точок з OSM не робив, тільки оновлення даних, для початку у напівавтоматичному режимі, з ручним вибором варіанту.
Чим бот відрізняється від валідатора?
Cтовідсоткової довіри у мене немає ні до яких даних. Але після запуску синхронізації адміністратори сайту хотіли ще підключити волонтерів для перевірки точок на місцях.

Це ж спеціалізований сайт для збору вторресурсів на переробку, на жаль не зрозумів, до чого тут заправки, банки, тощо?

Бот редагує дані автоматично згідно якихось правил синхронізації.
Валідатор відображає різницю в даних, подальше редагування OSM-даних виконується людиною звичними засобами(наприклад через JOSM) зменшуючи різницю в даних.

Можна порівнювати osm-дані amenity=recycling з даними replay.org.ua
Крім цього можна порівнювати osm-дані amenity=bank з даними банків, наприклад з otp чи дельта

Трохи подивився на дані, ось кілька зауважень:

  • координати пунктів прийому неточні для більшості точок, часто прикріплені до якогось будинку з адресою, тоді як самі пункти це невеличкі кіоски/гаражі десь поруч з тим будинком, наприклад точки “Київ, вул. Ямськая, 6/31” (ще й назва вулиці з помилкою) і “вул. Лятошинского, 26а”(теж назва вулиці з помилкою)
  • деякі точки не є пунктами прийому вторсировини, основною метою їх діяльності є щось інше, а прийом вторсировини - акт підтримки “зелених” ініціатив, наприклад
    Оперативно-рятувальна служба м. Києва Адреса: Київ, вул. Жилянська, 26а
    ООО «ИСТ МЕЙД» Адреса: Київ, вул. Велика Васильківська, 124а
    Магазин Watsons, 0 поверх ТРЦ Ocean Plaza Адреса: Київ, вул. Горького, 176
    EcoBuffet Адреса: Київ, Васильківська, 28 – на replay.org.ua знову ж таки некоректне положення точки, ось в OSM
    Мовна школа Green Сountry Адреса: Київ, провулок Інженерний, 4-Б
    Туристична компанія Mixtoura Адреса: Київ, вул. Золотоворітська, 6-А
    які теги ви плануєте вказати для Watsons і EcoBuffet?

У відділеннях Платинумбанку стоять ось такі коробки. Які пропозиції щодо тегів для банку?

Звісно, але ж тут не про те зовсім, лише про вторресурси.

Нда, це було б значно легше, якби код вже був викладений. Але він ще не готовий.
Наразі синхронізуються тільки теги

name
description
image
  • 5 матеріалів, що є на сайті, усі інші теги ігноруються.

Про координати - звісно, бачив. Переміщуватиму точки на сайті, а не на OSM.

Адреси ігноруються. Я взагалі досить негативно ставлюсь до навігації за адресами за можливості вказати прямі координати, що значно простіше.

Наскільки я знаю, у Watsons і EcoBuffet теж стоять контейнери для збору як мінімум батарейок, ні?

Жилянська 26а є і у OSM, сам додавав. Вони точно вже не приймають батарейки самі?

Забув додати. Написав алгоритм пошуку ідентичних точок (найближчі, але ще й ігнорування recycling_type=container якщо є інша точка поряд).

Я б ставив окремі точки якнайближче до реального положення контейнера. Власне, так і зробив для БЦ Євразія, наприклад. Це суперечить якійсь домовленості? Хіба так не зручніше, ніж змушувати користувача шукати контейнер по усьому банку?

(перенесено вище)

(перенесено вище)

(перенесено вище)

name
image

поки теж ігноруватимуться, бо на сайті там самі загальні назви і ніби немає унікальних фото. Спробую почати тільки з description і матеріалів.

Відділення банків чи кафе, на відміну від БЦ відмічені точками, а не лініями.
Думаю краще, по аналогії з atm=yes, використовувати recycling:batteries=yes на тій же точці банку. Без amenity=recycling. Аналогічно для кафе, ресторанів і турагенції, які приймають вторсировину. А amenity=recycling, на мою думку, краще використовувати тільки для повноцінних пунктів прийому вторсировини, наприклад таких: http://ecosfera.com.ua/wp-content/uploads/2013/07/vtor-300x173.png

Слушно. Створив запитання: https://help.openstreetmap.org/questions/37298/is-it-ok-to-add-recycling-material-tags-without-the-amenity-tag

А мені ця ідея подобається. Якщо OSM надає можливість максимально точно локалізувати об’єкт, чому б нею не скористатися?
До того ж, якщо вже звертатися до подібних аналогій з atm, то там саме так і рекомендують робити:

Tag:amenity=atm).
Поки що у нас це рідкість, але на майбутнє - в приміщенні контейнерів може бути більше одного, припустимо що від різних операторів…

https://github.com/int-ua/replay-osm-sync
Для recycling_type=container лишив лише попередження.
Що скажете?