Как указать admin_level для поиска?

У меня есть этот запрос, чтобы собрать все города во Флориде:

[out:json];
area['admin_level'='4']['name'='Florida'];
(relation['admin_level'='8'](area););out;

Однако есть два экземпляра Флориды на admin_level 4:

Вы можете увидеть, как он возвращает города в обеих Флоридах здесь (вам просто нужно переключиться на Data вкладку и нажмите кнопку «Выполнить»).

Как бы я переписал этот запрос, чтобы запрашивать только Флориду в Соединенных Штатах? У меня есть 65 других поисковых запросов, связанных с аналогичными проблемами дублирования, поэтому запрос, который я могу заменить, например. значение name для каждого было бы лучшим.


person James Chevalier    schedule 06.08.2019    source источник


Ответы (1)


Взглянув на соответствующие отношения для Florida, UY и Флорида, США можно увидеть различные дополнительные теги, такие как is_in:country_code и ISO3166-2. Вы можете использовать один из них, чтобы ограничить запрос определенной страной:

[out:json];
area['is_in:country_code'='US']['admin_level'='4']['name'='Florida'];
(relation['admin_level'='8'](area););
out;
person scai    schedule 06.08.2019
comment
Благодарю вас! Вы случайно не знаете, насколько вероятно, что регионы имеют тег is_in:country_code? Не беспокойтесь, если все, что вы можете сделать, это пожать плечами на этот вопрос - я знаю, насколько обширны данные OSM. - person James Chevalier; 06.08.2019
comment
Похоже, что есть некоторые регионы без этого отношения, например. openstreetmap.org/relation/4734547#map=8/32.419/- 6.279 ... Мне нужно выяснить, как с ними справиться (или найти другой способ, который обрабатывает все случаи, например, вашу идею с ограничивающей рамкой). - person James Chevalier; 06.08.2019
comment
Извините, я изучаю всю эту структуру на ходу. Я только что понял, что могу разделить значение ISO3166-2 на - и взять первую часть в качестве кода страны. Похоже, что все регионы включают эти данные... - person James Chevalier; 06.08.2019
comment
Хорошо знать :) - person scai; 07.08.2019
comment
Я удалил второй пример. Объединение области с ограничивающей рамкой не поддерживается, т. е. добавление этой дополнительной ограничивающей рамки никак не влияет на запрос, оно просто игнорируется. - person mmd; 10.08.2019