Как получить максимальную скорость, разрешенную для широты и долготы с определенным радиусом?

Я разрабатываю приложение для Android, которое имеет функцию отображения максимальной скорости, разрешенной для текущего местоположения (другими словами, широты и долготы). Я нашел это решение Запросить турбо-режим Overpass по широте и долготе который дает значение максимальной скорости для местоположения с использованием турбо эстакады, но работает не для всех местоположений. Я создал запрос JSON https://overpass-api.de/api/interpreter?data=[out:jsonpting;way[maxspeedestive(around:1.0,52.004940,%204.369381);out%20tags; используя запрос, и он возвращает тег максимальной скорости в данных json, но не работает для всех местоположений.

Вот пример пустых данных, которые я получил из этого URL: Пустые данные

Любая помощь будет оценена. Это приложение будет запущено в США и Европе, поэтому, если решение подходит для этих мест, также приветствуется. Но надеюсь на универсальное решение.


person Deep Shah    schedule 04.04.2017    source источник
comment
По вашему запросу overpass-turbo возвращает теги для строки с максимальной скоростью - может, в этом буфере такой строки нет? Это данные OSM - maxspeed не обязательно должен присутствовать на каждой магистрали ...   -  person Jendrusk    schedule 04.04.2017
comment
Боковое примечание: вы должны соблюдать ограничение на использование Overpass API в соответствии с вики OSM. Максимальное количество запросов в день для ВСЕХ пользователей вашего приложения составляет 10'000. Если вы ожидаете превышения этого лимита, обязательно установите свой собственный экземпляр, иначе ваше приложение может быть заблокировано без предварительного уведомления. Также не забудьте отправить значимый пользовательский агент в заголовке HTTP, чтобы идентифицировать себя / свое приложение.   -  person mmd    schedule 04.04.2017
comment
@mmd Спасибо, что указали на этот фактор.   -  person Deep Shah    schedule 04.04.2017
comment
@Jendrusk, а у нас есть другой способ добиться этого?   -  person Deep Shah    schedule 04.04.2017
comment
Еще один комментарий: уже существует довольно много приложений, которые делают то же самое, что вы описали. В качестве примера приложения под лицензией GPLv3: github.com/plusCubed/velociraptor. Возможно, стоит подумать, прежде чем создавать еще одно приложение maxspeed.   -  person mmd    schedule 04.04.2017
comment
@mmd, спасибо, что поделились этим приложением. Я протестировал его, и у него нет данных о скорости для Швейцарии и многих других регионов Европы. После этого я установил Waze, и у него есть данные, есть ли представление о том, как они получают эти данные?   -  person Deep Shah    schedule 05.04.2017
comment
@DeepShah: извините, я не знаю, откуда Waze берет свои данные. Если вы планируете запускать свое приложение на Overpass API (который, по сути, обслуживает данные OpenStreetMap), вы, вероятно, увидите те же данные, что и через Velociraptor, который использует очень похожий запрос (+/- другой радиус запроса) на тот, который вы упомянули в своем вопросе.   -  person mmd    schedule 05.04.2017


Ответы (1)


Нет даже единственного пути на широте 46.361115, долине 6.13975 в радиусе 1 метра: https://www.openstreetmap.org/?mlat=46.361115&mlon=6.13975#map=19/46.36111/6.13975

Либо измените свои координаты, либо увеличьте радиус поиска.

Также, как уже заметил пользователь Jendrusk, не каждая улица имеет максимальную скорость в OSM. В городе Дивон-ле-Бен из вашего примера есть только несколько дорог с тегом maxspeed: http://overpass-turbo.eu/s/o48

person scai    schedule 04.04.2017
comment
Я увеличил радиус до 100 метров, по-прежнему возвращая пустые данные. Вы можете предложить мне лучший подход для моего приложения? Приложение имеет простое требование говорить об ограничении скорости на текущей дороге. - person Deep Shah; 04.04.2017
comment
См. Ссылку overpass-turbo в моем ответе. Для вашего региона очень мало тегов maxspeed. К сожалению, у OSM нет этой информации для этого города. - person scai; 04.04.2017
comment
Хорошо, я увидел, что, к сожалению, очень мало информации. Это не соответствует цели моего приложения, драйвер не сможет узнать ограничение скорости для определенных областей, а также это будет происходить во многих других местах, верно? - person Deep Shah; 04.04.2017
comment
Да, охват тега maxspeed будет зависеть от географического региона. - person scai; 04.04.2017
comment
Итак, нет возможности реализовать это приложение? - person Deep Shah; 04.04.2017
comment
Я не знаю ваших требований. Нет карты, на которой указаны максимальные скорости для всех дорог. Следовательно, нет приложения, которое может возвращать maxpseeds для всех дорог. Как насчет того, чтобы просто не вернуть ничего или принять максимальную скорость по умолчанию, если у вас нет действительного источника? - person scai; 04.04.2017
comment
Лучше не отображать ничего, поскольку я искал ограничение максимальной скорости в большинстве штатов США, оно выглядит следующим образом: 70 миль в час для сельских межштатных автомагистралей, минимальное ограничение скорости 45 миль в час, 65 миль в час для других шоссе с 4 полосами движения и 55 миль в час для всех других автомагистралей, и есть вероятность ошибки в расчете местоположения, поэтому это может быть опасно, если мы покажем максимальную скорость намного выше, чем разрешено на этой дороге. - person Deep Shah; 04.04.2017