UA Roads

В дополнение к ответу Larry0ua.

А почему бы не установить собственный номинатим сервер?
http://wiki.openstreetmap.org/wiki/Nominatim/Installation

Если интересен алгоритм, то вот:
https://help.openstreetmap.org/questions/30512/how-does-nominatim-reverse-geocode
https://github.com/twain47/Nominatim/blob/edc5733715a65158919c1abc4d765b754f5dc659/lib/ReverseGeocode.php

Если всё же MongoDB.

AFAIK, монго умеет geospatial запросы.

Не забудьте фильтрануть по тегу highway.

В монго есть такой вот оператор $near
http://docs.mongodb.org/manual/reference/operator/query/near/
Надо только научиться им пользоваться.

Можливо сервіс uaroads ще досить сирий і потребує вдосконалення, або ж я щось не розумію, та, поки що я можу стверджувати по тих місцевостях де я буваю - дані сервісу не відповідають дійсності. Так, на дорозі Моршин - Івано-Франківськ окремі ділянки мали б бути практично червоними (тобто найгіршої якості), зокрема в м. Болехів дорога відсутня, відрізок до м.Долина - купа ям, між селами Голинь - Пійло, що біля Калуша - “відсутня” дорога, ітд. На uaroads.com там все позначено зеленим кольором. Чому? Тому, на мою думку, сервіс dorogy.net хоч і суб’єктивний, та все ж більш достовірний!

Тому, що зараз вивели просто дороги по базі OSM з фільтрацією по масштабу :slight_smile:

Спасибо! Номинатим пробуем

Если не ошибаюсь, то он ищет по удаленности, а не по принадлежности к прямой? А ноды начала и конца отрезка могут быть довольно далеко от нужной точки

Не знаю. Мне кажется, он ищет по удалённости точки до самой прямой, а не до точек, в неё входящих. Хотя, я тоже могу ошибаться.

Вот например: http://www.openstreetmap.org/?mlat=46.48005&mlon=30.73800#map=18/46.48005/30.73913

db.ways.find({"ky": {$in: ["highway"]},'loc.loc':{$near:[46.48005,30.73800]}},{"tg":1}).limit(3)

{ "_id" : NumberLong(103134653), "tg" : [ 	[ 	"highway", 	"secondary" ], 	[ 	"lanes", 	"4" ], 	[ 	"name", 	"Катерининська вулиця" ], 	[ 	"name:en", 	"Katerynynska Street" ], 	[ 	"name:ru", 	"Екатерининская улица" ], 	[ 	"name:uk", 	"Катерининська вулиця" ], 	[ 	"old_name", 	"Карла Маркса вулиця" ], 	[ 	"old_name:ru", 	"Карла Маркса улица" ], 	[ 	"oneway", 	"no" ] ] }
{ "_id" : NumberLong(163285974), "tg" : [ 	[ 	"highway", 	"secondary" ], 	[ 	"name", 	"Жуковського вулиця" ], 	[ 	"name:en", 	"Zhukovskoho Street" ], 	[ 	"name:ru", 	"Жуковского улица" ], 	[ 	"name:uk", 	"Жуковського вулиця" ], 	[ 	"oneway", 	"yes" ] ] }
{ "_id" : NumberLong(163285974), "tg" : [ 	[ 	"highway", 	"secondary" ], 	[ 	"name", 	"Жуковського вулиця" ], 	[ 	"name:en", 	"Zhukovskoho Street" ], 	[ 	"name:ru", 	"Жуковского улица" ], 	[ 	"name:uk", 	"Жуковського вулиця" ], 	[ 	"oneway", 	"yes" ] ] }

Нашёл похожий вопрос для PostGIS:
http://gis.stackexchange.com/questions/73465/best-way-to-assign-points-to-nearest-roads-in-postgis
Советуют сделать

SELECT [сегменты дорог] ORDER BY [расстояние до точки с координатами] LIMIT 1

Ну и фильтр наверное, метров 10-20.

Вообще, несмотря на заманчивость использования MongoDB, PostGIS - более проверенное и популярное решение.

Відзвітуюсь, що проблему з прив’язкую вирішили. Там доволі складні алгоритми довелось використати і ми плануємо підготувати по цьому доповіть на одній з ІТ конференцій. Було перепідв’язано понад 60 тис треків (довго це все рахувалось скажу я вам :)) і наразі мапа стала адекватніша http://uaroads.com. Якщо в когось є зауваження, то кажіть. Ми якраз працюємо над врахуванням швидкості в оцінці і вже наступного тижня будемо дивитись перші результати. Має стати взагалі гарно )

Спасибо, изменения заметны.
Например, здесь: http://uaroads.com/17/49.45743427443847,37.154388427734375
В OSM дорога была нарисована одной линией, и на http://uaroads.com треки были “привязаны” к этой линии. Потом я обозначил в OSM каждую проезжую часть отдельной линией. Но на сайте цветная линия (которая показывает качество дороги) по-прежнему имела старую геометрию. А теперь всё ОК.

Если не секрет, когда планируется следующее “перепривязывание”?

Отут з варшавкою за Коростенем http://uaroads.com/10/51.07160544872007,28.28224182128906 якісь проблеми. Там не може бути поганої дороги, вона збудована наново аж від кордону Жт. області аж до Ковеля. Дивно що до Коростеня - нормальна(так воно й є), а після - жах(неправда, дорога абсолютно така ж)

Можливо ви можете зробити якусь сторінку з інформацією де gps-треки і osm-дороги суттєво відхиляються один від одного, а також чи багато у вас треків в околі яких немає osm-доріг?
Це має вказувати на неточні або відсутні osm-дані. OSM-спільнота могла б підправити osm-дані відповідно до треків, тоді відповідно і треки краще прилягатимуть до osm.

Також, якщо ваші треки не є комерційною таємницею - ви можете завантажити їх в OSM(https://www.openstreetmap.org/trace/create, gpx-файл, або zip-файл з необмеженою кількістю gpx-файлів), треки допомагають вирівняти фон(аерофотознімки) для більш точного мапінгу.

Всім привіт!

Викотили на http://uaroads.com/ окремим шаром карту доріг по середній швидкості.

Працюємо над тим як прив’язати ці значення до якості. Наприклад, якщо на трасі де всі їдуть 100 є місце де всі їдуть 20, то мабуть це або яма або переїзд. Але що робити, якщо траса проходить через населений пункт і діє обмеження 60? Або це стаціонарний пост і там 40-50 обмеження.

Можливо у вас є ідеї з цього приводу ;)?

Бо в OSM базі speed limit для невеликої кількості доріг вказаний

Треба оціновати темп зміни швидкості до і після. Якщо на дорозі є якась перешкода то водії починають різко перед нею гальмувати, а потім набирають швидкість.

а якщо попереду кілька сот метрів поганої дороги, а не перешкода )?

тоді - це погана дорога!

але не буде цієї динаміки зміни швидкості. можливо це було обмеження швидкості знаками

Я хочу спонукати усіх охочих до обговорення. Задачка дійсно цікава )

А в чому саме проблема? Це ж абсолютно різні характеристики) Спочатку на одне подивились, потім на інше… А маршрут можна будувати лише на основі швидкостей, ямковість буде там врахована більшістю водіїв

Якщо швидкість вказана в ОСМ, то орієнтуватися на неї, якщо ні, то перевіряти входження вея в полігон населеного пункта (place=).

Гарна думка. Дякую :wink:

Не понятно в слое скорость как обозначена? зеленый желтый красный, кто сколько?

Да, в ОСМ скорость может быть обозначена 30км/ч и участок в 10 км. он будет зеленым?
А рядом есть объездная дорога в 15 км, но по ней я могу ехать 110 км/ч.
Может лучше учитывать именно дорогу, на машине я хочу проехать быстрее.

А вообще я хочу навигатор, который при расчете маршрута показывал несколько вариантов:

  1. 10% машин при средней скорости в 80-100 км/ч, лучше ехать дорогой А, качество дороги будет 5, время в пути ?.
  2. 70% машин при средней скорости в 90-110 км/ч, лучше ехать дорогой Б, качество дороги будет 4, время в пути ?.
  3. 5% машин при средней скорости в 100-120 км/ч, лучше ехать дорогой В, качество дороги будет 3, время в пути ?.
    как то так :slight_smile: