Ошибки в названиях

liosha
А может сделать постпроцессор на подобии того, что для названия улиц? Чтобы названия poi приводить в общий вид. Например:

Lukoil, Лукоил => Лукойл
McDonalds, mcdonalds => Макдональдс
Пятерочка => Пятёрочка.

Теоретически можно, но на практике за всем не уследишь, да и править такие вещи надо в самой базе

Да пусть за всем и не уследим, но, по-моему, идея правильная, надо только добровольцев, отлавливающих эти разнописания. Хоть немножко бардак в пои сократится :slight_smile:

SenatoR, если доброволец нашёл ошибку, её проще исправить в базе, чем делать автоисправлялку на этапе конвертации.
Вот, например: [name=Лукоил]
Скачиваем, грузим в жосм, исправляем, загружаем обратно

А о разнописаниях будем рассказывать мы - пользователи. Так постепенно база и будет пополнятся.

я согласен с Лешей - бардак в пои нужно сокращать непосредственно в ОСМ

Тогда нужен бот, который будет гулять по ОСМ и править по словарю.

Такого бота через xapi сделать элементарно. Нужен только список стандартных ошибок.

Кстати, Лукойл на заправках - это operator или brand? В последних пресетах josm предпочтение вроде у brand.

Иногда ошибки в самом названии на вывесках, и бот тут не помощник. У меня в городе есть магазины “Аполон” и “Крестина”.

Операторы в разных регионах на Лукойлах вроде как разные, типа ООО “ЛУКОЙЛ-Центрнефтепродукт”, ООО “ЛУКОЙЛ-Югнефтепродукт”, если не иметь ввиду глобально ОАО “ЛУКОЙЛ”.

зачем бот, когда такие вещи можно поправить вручную?
и так в списке changeset-ов не протолкнуться от ботов…

zverik, делать вручную повторяющиеся вещи - некошерно

Полностью согласен, порядок давно пора наводить в базе ОСМ и не только касательно POI :wink:

опять про военные объекты? :wink:

Ну вот, сделал набросок. Пока только точки, и нет ограничения по территории.
Создаёт файл result.osm, который надо загрузить в жосм и аплоднуть.


use strict;
use utf8;

use Encode;
use LWP::Simple;
use Geo::Parse::OSM;

my @list = (
    [ 'node', 'name', 'Лукоил', 'Лукойл' ],
);

open OUT, '>', 'result.osm';
print OUT "<?xml version='1.0' encoding='UTF-8'?>\n";
print OUT "<osm version='0.6' generator='spell-bot.pl'>\n";


for my $item ( @list ) {
    my ( $otype, $key, $errval, $newval ) = @$item;
    my $xurl = "http://www.informationfreeway.org/api/0.6/${otype}[$key=$errval]";
    my $xml = get $xurl;

    my $parser = sub {
        my $data = shift;
        return unless $data->{type} eq $otype;
        return unless $data->{tag}->{$key} eq $errval;

        $data->{action} = 'modify';
        $data->{tag}->{$key} = $newval;

        print OUT Geo::Parse::OSM->to_xml( $data );
    };

    Geo::Parse::OSM->parse_file( \$xml, $parser );
}

print OUT "</osm>\n";
close OUT;

Исправил лукойлы и пятёрочки: http://www.openstreetmap.org/browse/changeset/5918064
Макдональдсы, пока не будет ограничения по территории, нельзя.

Отлично сделано! Пятёрочки кстати же shop=supermarket? Было бы идеально, чтобы потом по фильтру “Пятёрочка” конвиенсы менять на супермаркет. :slight_smile:

А вот этого уже не надо - пятёрочки разные бывают.
Тем более далеко не факт, что все name=Пятёрочка относятся к этой продуктовой сети.

Классификация дорог (особенно дворовых проездов), адресация, включая подписи у объектов адресации.
И да, военные объекты :stuck_out_tongue: