Есть же встроенная справка, где ссылка на wiki
node["name"!~"."]; /* finds nodes without "name" tag; does not have key name */
Есть же встроенная справка, где ссылка на wiki
node["name"!~"."]; /* finds nodes without "name" tag; does not have key name */
На пересечениях водных и наземных путей я писал тэг level=-1 вместо layer=-1 (ну или 1), причём довольно давно. Перепутал. Почему - не знаю. Можно ли при помощи Overpass API получить все объекты, созданные мной и содержащие тэг level? Чтобы загрузить всё это в JOSM и исправить.
P.S. С запросом на сайте Overpass Turbo справился, но в JOSM такое не загрузить:
Сделать что-нибудь типа http://overpass-turbo.eu/s/dbK
Зачем разбираться “я, не я…”? Поправить уж все ошибки, без поисков виноватых.
Напрямую нет потому что в Overpass нет history API у объектов и фильтровать по свойствам пакетов нельзя (“автор” объекта). Это можно обойти, но много кода будет обрабатывающего.
Если объекты до сих пор живые
user:“Roman Shuvalov” and type:way and level=“-1” - загрузит последние объекты твои пока ещё их никто не трогал
убираем условие на пользователя и получаем ещё пару объектов которые можно потом будет посмотреть
Там кнопки есть для этого “Экспорт” - “Запрос” - “Преобразовать в компактный”
https://wiki.openstreetmap.org/wiki/Overpass_turbo/Wizard
http://www.openstreetmap.org/user/Roman%20Shuvalov - у тебя только 300 пакетов, их можно просмотреть быстро в https://josm.openstreetmap.de/wiki/Help/Dialog/ChangesetManager Ты же не во всех 300 пакетах такое делал?
Как выяснилось, на авторство пофиг - найденных объектов в моей области буквально два десятка, даже если найду что-то чужое - не страшно, отфильтрую руками.
Но про JOSM не понял. После “Преобразовать в компактный” получаю ссылку, напрямую выдающую OSM XML. И что, его надо сохранить как .osm и открыть в JOSM? А попроще способа нет?
Внимательнее при экспорте, там три вкладки: “данные”, “карта”, “запрос”.
Но проще всего данные загрузить сразу в открытый JOSM (“данные” “JOSM”) https://help.openstreetmap.org/questions/29022/overpass-turbo-query-wizard-output-to-josm-how. Минус там что нужно будет починить запрос (overpass turbo сам скажет перед экспортом в JOSM), иначе JOSM его не понимает.
Возится с XML сохранять/открывать данные или запрос нужды нет.
Совершенно случайно, может кому пригодится. Wizard на overpass-turbo.eu ругается на двоеточие и не понимает условия с тегами, использующими пространство имен (вида namespace:key=value).
Потому, если для какой-то цели нужно выбрать, например, все теги в одном пространстве имен, шаблон должен использовать регулярные выражения.
Пример:
node[~"^recycling:.*$"~"."]
такой шаблон выбирает все точки с тегами вида recycling:=
Это описано в документации, но термин “пространство имен” там не употребляется, потому я решил тут это описать, на случай, если кто будет такое искать.
Тег с двоеточием надо просто обкавычить
Раз пошла такая пьянка, накину парочку из последних интересных
Города в пределах (по прямой) 20км от МКАД
[out:json][timeout:25];
// gather results
(
rel(2094222)->.mkad;
(
node(around.mkad:20000)["place"="city"];
node(around.mkad:20000)["place"="town"];
) ->.city;
);
// print results
.city out body;
//>;
//out skel qt;
{{style:
node
{ color:green; text: name; }
}}
Что за населённый пункт в центре карты
[out:json][timeout:25];
// gather results
(
is_in({{center}}) -> .b;
(way(pivot.b)["place"];
rel(pivot.b)["place"];
)-> .c;
);
.c out body;
>;
out skel qt;
Посмотреть как проходит маршрут общественного транспорта
[out:json];
relation
["route"="bus"]
["ref"="38"]({{bbox}})
->.hr;
(
.hr;
way(r.hr)->.hrp;
node(r.hr);
);
out body qt;
node(w.hrp);
out skel qt;
“просто” - не работает.
Приведите пример того, что вбивать в wizard для recycling:=
edward17, регулярка ~“^recycling:” не сильно отличается от ~“^recycling:.*$”
Я не в курсе почему overpass матчит всё, а не минимальные десять символов у ^recycling:
http://regexr.com/3cff9 - матчится весь тег recycling:red
http://regexr.com/3cfff - вариант без .*$, матчится только recycling:
в .*$ тоже есть неточность потому как в неё попадёт recycling:
Поэтому наиболее безопасный вариант вот такой:
^recycling:.+$
edward17, я спрашивал, что имел в виду wowik под “просто обкавычить тег” (когда отвечал на мое предложение использовать шаблон с регулярками http://forum.openstreetmap.org/viewtopic.php?pid=567480#p567480 ), потому что
"recycling:"
, очевидно, нифига не работает.
Речь, напомню, идет про условие для выборки всех тегов, входящих в пространство имен (т.е. recycling:key=value , где key и value - любые )
Перечитал дискуссию и понял, что моё сообщение было ни к чему.
Увидел это:
и ответил. Но не заметил, что вверху уже написан почти такой же запрос.
Зато в итоге разобрали несколько сходных шаблонов, которые выбирают одно и то же, но с разными нюансами (не пустой key, например).
А вообще, если совсем по-хорошему, wizard (и api вообще) должны понимать namespace, по крайней мере - в классическом виде, раз это довольно широко используется.
А вы про другое писали
(вида namespace:key=value)
посему “просто” это так:
“namespace:key”=value или даже “namespace:key”=“value”
wowik, признайтесь честно, вы дальше первого предложения (откуда процитировали про namespace:key=value) не читали. А уже во втором было написано:
Потому, если для какой-то цели нужно выбрать, например, все теги в одном пространстве имен, шаблон должен использовать регулярные выражения.
В первом предложении было ошибочное утверждение “ругается на двоеточие и не понимает условия с тегами, использующими пространство имен (вида namespace:key=value)”. Его исправление и предлагал, ибо вдруг кто и впрямь поверит, что нельзя писать двоеточие в запросе. Вы же про wildcardы ничего там не говорите, проблема-то в них, а не в двоеточии. Сразу бы и писали про namespace:*=value.
А то у вас как у Путина, сначала заявление, а потом разъяснение Пескова, что на самом деле имелось ввиду в заявлении.
В первом предложении было ошибочное утверждение “ругается на двоеточие и не понимает условия с тегами, использующими пространство имен (вида namespace:key=value)”. Его исправление и предлагал, ибо вдруг кто и впрямь поверит, что нельзя писать двоеточие в запросе. Вы же про wildcardы ничего там не говорите, проблема-то в них, а не в двоеточии. Сразу бы и писали про namespace:*=value.
А то у вас как у Путина, сначала заявление, а потом разъяснение Пескова, что на самом деле имелось ввиду в заявлении.
Вы и там дальше первого предложения не читали.
В этом же сообщении написано:
если для какой-то цели нужно выбрать, например, все теги в одном пространстве имен
.
Это и есть namespace:= и ни что другое.
Бросайте привычку отвечать на одно (любое) предложение из сообщения, игнорируя остальные.
Подскажите, возможно ли, и, если возможно, приведите пример запроса, в котором по координатам точки(центр карты) можно получить название области РФ. Заранее спасибо.