Узнать город по координатам

Пример для вот этого
http://overpass-turbo.eu/s/ogk

{center} - координаты экрана

Мне то надо получить название города)

На закладке “Данные” посмотрите, что на такой запрос вернут.
Можно запросить и результаты XML
http://overpass-turbo.eu/s/ogq

Вижу.
Этот запрос можно укоротить? Т.е. получить без путей и точек?

Можно и короткий, было бы желание:

[out:csv(name)][timeout:25];
// gather results by freeExec
is_in({{center}}) -> .b;
  
(way(pivot.b)["place"];
 rel(pivot.b)["place"];
)-> .c;

make marker name=c.set(t[name]);
out;

Почему нельзя? А что вы будете рассказывать своим клиентам, когда вас забанять за высокую нагрузку, и выставят счёт за упущенную прибыль?

В моем проекте клиент пользователя делает все запросы.) Так что это вообще не проблема.

Всем привет, как можно найти город пекин по координатам?
Сделал запрос координат 北京市
Получил 2 варианта (массив)
По любому из них меня выкдывает не на город пекин а на его район, причем район находится в поле город, а сам пекин в поле штат.

Хотя если искать координат по городу, то получаем сообщение что город найден…

Где, у кого ищет, как, подождём Вангу.

Номинатим же всё находит, и город и регион.
https://nominatim.osm.org/search.php?q=北京市&format=jsonv2&debug=1

Как вариант могу предложить во вкладке Structured указать название в нужном поле. Единственное, не знаю как это сделать через API, не интересовался. Но наверняка можно.

не знаю как это сделать через API, не интересовался. Но наверняка можно.

image

Например, ко мне пришел чел и сказал что он живет в Пекине, я ищу пекин:
https://nominatim.openstreetmap.org/search?format=xml&q=北京市

Получаю какую то информацию и ищу по полученным ранее координатам город + страна:
https://nominatim.openstreetmap.org/reverse?format=json&lat=39.9057136&lon=116.39129721

Попутно убеждаемся что пользователь не ошибся при вводе наименования своего грода, иначе в БД будет свалка из разновидностей:
Пекин
Пикин
Пекен
Пекн
и т.п.
Но в ответе в графе city почему то уже район города а не сам город.

Вот о чем я.

свалку разновидностей держишь у себя, используешь какойнить соответвующий лингвистический проект.
ну а почему “city”:“Район Дунчэн” а “state”:"Пекин надо ковырять прравила номинатима.

Может все таки перейдем к вопросу, как по координатам определить грод?
“lat”:“39.9269012”,“lon”:“116.4100395”
Даже если сделать zoom=10 все равно отдает район:

“city”:“Район Дунчэн”

И это именно район в городе, а не сам город:

Район Дунчэн находится в городе Пекине, Китай .

Надо смотреть административное деление. Возможно, state Пекин это примерно как у нас ГФЗ Санкт-Петербург, а city Дунчен как Пушкин. Имхо.

У Пекина нет полигона place, он там уровня федерального округа.

1 Like

мне кажется отсуnствие place недоработкой :frowning:
но мож у них такие договоренности…

Так а как же понять в каком поле находится город?
Это уже второй случай когда в поле city нет города:
Точно не вспомню где, но поля город небыло вообще, в место этого было: town
Но тут хотя бы понятно, нет одного ищем другое…

Рекомендую ознакомиться:

Схема обозначения населённых пунктов в России
place в мире

1 Like

Помимо

Как планируешь быть с двумя следующими сложностями:

  1. Вандалы поменяли в OSM name населенного пункта, поэтому он не находится? Практика показывает, что вандализм могут не замечать неделями и месяцами, особенно вдали от крупных городов.

  2. Границы населенного пункта в OSM неактуальны, город давно разросся, по заданным координатам находится новая застройка города, но Nominatim справедлиао уверен, что города в той точке нет?

Ну это хоршо, более менее понятно, а вот что же делать с китаем? Есть варианты?