если я правильно понял - как-то так: http://overpass-turbo.eu/s/b3V
…но если зашла речь про отношения - скорее всего город не в России.
играть в угадайку неохота - так что ждем конкретики
если я правильно понял - как-то так: http://overpass-turbo.eu/s/b3V
…но если зашла речь про отношения - скорее всего город не в России.
играть в угадайку неохота - так что ждем конкретики
Спасибо за оперативность.
Речь действительно идет об Украине (Днепропетровск). Запрос в OverPass следующий:
[out:json]; ({{bbox}});out meta;>;
вместо bbox задавал координаты тайла при 18-ом зуме.
Выдает след конструкцию:
{
“type”: “relation”,
“id”: 3284982,
“timestamp”: “2015-08-15T09:57:04Z”,
“version”: 19,
“changeset”: 33349461,
“user”: “Husim”,
“uid”: 2921272,
“members”: [
{
“type”: “way”,
“ref”: 81004247,
“role”: “house”
},
{
“type”: “way”,
“ref”: 81004311,
“role”: “house”
},
…
{
“type”: “way”,
“ref”: 115559938,
“role”: “street”
},
…
{
“type”: “node”,
“ref”: 2626410366,
“role”: “house”
}
],
“tags”: {
“name”: “Комсомольська вулиця”,
“name:en”: “Komsomolska Street”,
“name:ru”: “Комсомольская улица”,
“name:uk”: “Комсомольська вулиця”,
“type”: “associatedStreet”
}
}
Т.е. здесь ID улицы присутствует внутри одного из свойств “members”.
Попробую уточнить вопрос: можно ли как-то в OverPass задавать условие выборки по параметру “ref” узла “members” в relation типа “associatedStreet”. Выбирать все отношения, в кот. входит элемент с указанным ID внутри определенного bbox.
P.S. Или я не в ту сторону копаю и есть какой-тот другой вариант нахождения списка домов на определенной улице?
OVK,
в каком формате нужно получить данные? Или формат не имеет значения?
edward17,
Вообще-то без разницы. А из чего можно выбрать?
у меня сходу не получилось разобраться, но какие-то примеры можно посмотреть тут:
http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_API_by_Example#QA_on_Streets.2C_Addresses_and_House_Numbers
d1g
СПАСИБО ОГРОМНОЕ!!!
http://nadoloni.com/ - это просто праздник какой-то! Спас гору времени и нервов!
Правда в ответах JSON у них какая-то путаница с названиями городов и улиц. Ну, да не беда,- распарсим, поправим.
Еще раз, благодарю! Удачи!
Подскажите, как указать в запросе выборку POI, в которых отсутствует какой-то тег? Например post_office без opening_hours. Не пустой, а именно отсутствующий
Есть же встроенная справка, где ссылка на 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 - любые )