В соответствии с http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL запросами могут использоваться регулярные выражения как по значениям, так и по клавишам. Хотя у меня нет проблем с использованием регулярного выражения для значений, у меня проблема с ключами.overpass-api: regex on keys
Пример на вики, указанной выше, говорит (в числе других примеров):
/* finds addr:* tags with value exactly "Foo" */
node[~"^addr:.*$"~"^Foo$"];
Итак, вот пример использования регулярных выражений на клавишах и значении.
Меня интересует ключ name
. В частности, ключ name:en
. Есть проблемы с поиском по имени. Не все имена указаны на английском языке, а для тех узлов/способов/отношений, имена которых не указаны на английском языке, нет гарантии, что будет тег name:en
с английской версией имени.
В общем, нет никакого способа узнать заранее, если имя будет на английском языке или что есть тег name:en
. Если вы запрашиваете только name
или name:en
, вы рискуете не нанести удар. (Конечно, поиск обоих не является гарантией успеха.)
У меня есть случай, когда я знаю name
не удается, но name:en
преуспевает. Это мой тестовый пример. Я могу запросить overpass-api.de/api/interpreter с помощью этого:
[out:json][timeout:25][bbox:33.465530,36.156006,33.608615,36.574516];
(
node[name~"duma",i][place];
way[name~"duma",i][place];
>;
relation[name~"duma",i][place];
node["name:en"~"duma",i][place];
way["name:en"~"duma",i][place];
>;relation["name:en"~"duma",i][place];
);
out center;
see it on overpass и она отлично работает («Дума» не найден через name
, но встречается с name:en
), но я считаю, он длительный и несколько повторяющийся.
Я хотел бы использовать регулярное выражение с тегами name
и name:en
, но либо сервер не понимает запрос, либо я просто использую неправильное регулярное выражение.
Используя пример, приведенный в вики: node[~"^addr:.*$"~"^Foo$"]
Я пробовал:
[~"name|name:en"~"duma",i]
[~"name.*"~"duma",i]
[~"^name.*$"~"duma",i]
и ряд других. Я даже подражал этому примеру с помощью [~"^name:.*"~"duma",i]
, чтобы узнать, не вернется ли что-нибудь.
Означает ли overpass-api.de регулярные выражения на ключах или я просто неправильно задаю регулярное выражение? Я не получаю ошибку от overpass-api.de, только координаты bbox и пустой результат. Обычно он очень строг, реагируя на запрос с форматированным форматированием. Заранее спасибо.
Это нормально/можно заменить 'http://dev.overpass-api.de/api_mmd/' для 'http://overpass-api.de/api/interpreter?' пока патч регулярных выражений не появится? В моем проекте содержится окно ввода для запроса пользователя, а затем вызов командной строки на сервер для json. обычно i не будет беспокоить эстакаду для геокодирования. (nominatim через mapquest делает очень хорошо и обрабатывает нечувствительность к регистру). но если nominatim терпит неудачу, единственным вариантом является эстакада. я хотел бы включить патч в свой проект, если все в порядке. -go – user2831799
Это может занять несколько недель, если не месяцев, пока патч не может быть поднят (есть некоторые другие масштабные изменения, ожидающие первого объединения). В общем случае экземпляр dev предназначен для тестирования, дающий обратную связь по исправлениям. Любые виды продуктивного использования не поощряются: служба может быть недоступна в любое время без предварительного уведомления, URL-адрес может постоянно меняться и т. Д. Нижняя строка: никаких гарантий в отношении dev-бокса нет. – mmd
без проблем. спасибо за продолжение и за первоначальное разъяснение. мой двухэтапный запрос для «name», а затем и для «name: en» отлично работает. я думаю, в значительной степени требуется для использования широкой публикой, поэтому я буду хромать до тех пор, пока патч не размалывает его до цепочки. -go – user2831799