OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2018-12-05 00:59:50

uwagaTosty
Member
Registered: 2018-12-05
Posts: 7

Re: Pobieranie wartości prędkości maksymalnej

Cześć. Przeszukuję właśnie pół internetu żeby znaleźć odpowiedź na swoje pytanie. Jestem w trakcie robienia projektu polegającego na zrobieniu aplikacji na androida. Potrzebuję w niej informacji o maksymalnej prędkości dla danego punktu (lub bboxa). Wiem że da się to zrobić przez overpass api ale dane dla PL nie zwracają maxspeed. I tutaj moje pytanie. Czy istnieje jakieś API które umożliwi pobranie wartości maxspeed dla danego punktu z os mapy? Jeśli tak to w jaki sposób można to zrobić? hmm

Offline

#2 2018-12-06 20:51:03

Mateusz Konieczny
Member
Registered: 2013-09-22
Posts: 1,320

Re: Pobieranie wartości prędkości maksymalnej

uwagaTosty wrote:

Cześć. Przeszukuję właśnie pół internetu żeby znaleźć odpowiedź na swoje pytanie. Jestem w trakcie robienia projektu polegającego na zrobieniu aplikacji na androida. Potrzebuję w niej informacji o maksymalnej prędkości dla danego punktu (lub bboxa). Wiem że da się to zrobić przez overpass api ale dane dla PL nie zwracają maxspeed. I tutaj moje pytanie. Czy istnieje jakieś API które umożliwi pobranie wartości maxspeed dla danego punktu z os mapy? Jeśli tak to w jaki sposób można to zrobić? hmm

Podasz przykład zapytania overpassa które zwraca dane maxspeed i takie które nie zwraca? Możliwe że ta informacja nie jest jeszcze zmapowana dla danej drogi.

Offline

#3 2018-12-06 21:02:09

uwagaTosty
Member
Registered: 2018-12-05
Posts: 7

Re: Pobieranie wartości prędkości maksymalnej

Mateusz Konieczny wrote:

Podasz przykład zapytania overpassa które zwraca dane maxspeed i takie które nie zwraca? Możliwe że ta informacja nie jest jeszcze zmapowana dla danej drogi.

Hej, dzięki za odpowiedź. Zapytanie które przechodzi (wzięte ze stackoverflow):

www.overpass-api.de/api/xapi?*[maxspeed=*][bbox=5.6283473,50.5348043,5.6285261,50.534884

Zapytanie które nie zwraca danych maxspeed (droga na której jest oznaczona prędkość na os mapie):
www.overpass-api.de/api/xapi?*[maxspeed=*][bbox=20.897755,52.246316,20.897760,52.246322

Offline

#4 2018-12-06 21:59:54

Mateusz Konieczny
Member
Registered: 2013-09-22
Posts: 1,320

Re: Pobieranie wartości prędkości maksymalnej

uwagaTosty wrote:
Mateusz Konieczny wrote:

Podasz przykład zapytania overpassa które zwraca dane maxspeed i takie które nie zwraca? Możliwe że ta informacja nie jest jeszcze zmapowana dla danej drogi.

Hej, dzięki za odpowiedź. Zapytanie które przechodzi (wzięte ze stackoverflow):

Tak na szybko:

(1) linki są coś obcięte (chyba forum coś psuje)

(2) do debugowania polecam overpass turbo ( http://overpass-turbo.eu/ )

(3) czy droga która cię interesuje ma punkt w podanym bbox? Czy tylko przez niego przechodzi? W drugim przypadku nie pojawi się w wynikach.

(4) zauważ że aplikacja jeśli nie będzie małym testem nie będzie mogła za każdym razem robić zapytania do api - powinna pobrać dane i z nich korzystać - patrz https://wiki.openstreetmap.org/wiki/Ove … _instances "you can safely assume that you don't disturb other users when you do less than 10,000 queries per day and download less than 5 GB data per day."

Offline

#5 2018-12-06 22:10:36

maraf24
Member
From: Wrocław
Registered: 2015-03-07
Posts: 1,203

Re: Pobieranie wartości prędkości maksymalnej

uwagaTosty wrote:

Zapytanie które nie zwraca danych maxspeed (droga na której jest oznaczona prędkość na os mapie):
[...]bbox=20.897755,52.246316,20.897760,52.246322

Nie zwraca, bo w tym mikroskopijnym bboxie nie ma żadnej drogi. Najbliższa jest oddalona o 2 metry.

Edit:

Zapytanie które przechodzi (wzięte ze stackoverflow):

Zapewne chodzi o to.

I podany tam przykład z around, ale dla twoich danych (działający):
http://overpass-turbo.eu/s/El6

Last edited by maraf24 (2018-12-06 22:36:53)

Offline

#6 2018-12-06 22:41:36

uwagaTosty
Member
Registered: 2018-12-05
Posts: 7

Pobieranie wartości prędkości maksymalnej

Cześć!

Jako że temat odrobinę się rozrósł to nie chcę go prowadzić w wątku "pytania dla początkujących". Tu będzie łatwiejszy do znalezienia dla potomnych smile

Temat następujący: zapytania poprzez API do OpenStreetMap w celu pobrania prędkości maksymalnej w danym punkcie/obszarze.

uwagaTosty wrote:

Cześć. Przeszukuję właśnie pół internetu żeby znaleźć odpowiedź na swoje pytanie. Jestem w trakcie robienia projektu polegającego na zrobieniu aplikacji na androida. Potrzebuję w niej informacji o maksymalnej prędkości dla danego punktu (lub bboxa). Wiem że da się to zrobić przez overpass api ale dane dla PL nie zwracają maxspeed. I tutaj moje pytanie. Czy istnieje jakieś API które umożliwi pobranie wartości maxspeed dla danego punktu z os mapy? Jeśli tak to w jaki sposób można to zrobić?

Mateusz Konieczny wrote:

Podasz przykład zapytania overpassa które zwraca dane maxspeed i takie które nie zwraca? Możliwe że ta informacja nie jest jeszcze zmapowana dla danej drogi.

uwagaTosty wrote:

Hej, dzięki za odpowiedź. Zapytanie które przechodzi (wzięte ze stackoverflow):

www.overpass-api.de/api/xapi?*[maxspeed=*][bbox=5.6283473,50.5348043,5.6285261,50.534884]

Zapytanie które nie zwraca danych maxspeed (droga na której jest oznaczona prędkość na os mapie):
www.overpass-api.de/api/xapi?*[maxspeed=*][bbox=20.897755,52.246316,20.897760,52.246322]

Mateusz Konieczny wrote:

Tak na szybko:

(1) linki są coś obcięte (chyba forum coś psuje)

(2) do debugowania polecam overpass turbo ( http://overpass-turbo.eu/ )

(3) czy droga która cię interesuje ma punkt w podanym bbox? Czy tylko przez niego przechodzi? W drugim przypadku nie pojawi się w wynikach.

(4) zauważ że aplikacja jeśli nie będzie małym testem nie będzie mogła za każdym razem robić zapytania do api - powinna pobrać dane i z nich korzystać - patrz https://wiki.openstreetmap.org/wiki/Ove … _instances "you can safely assume that you don't disturb other users when you do less than 10,000 queries per day and download less than 5 GB data per day."

maraf24 wrote:

Nie zwraca, bo w tym mikroskopijnym bboxie nie ma żadnej drogi. Najbliższa jest oddalona o 2 metry.

Offline

#7 2018-12-06 22:50:10

uwagaTosty
Member
Registered: 2018-12-05
Posts: 7

Re: Pobieranie wartości prędkości maksymalnej

Faktycznie po zwiększeniu wielkości bboxa dane dotyczące maksymalnej prędkości w punktach się pojawiają.

Sposób działania aplikacji przewiduję w mniej więcej ten sposób: GPS pobiera lokalizację, wysyła się zapytanie do OSM o maksymalną prędkość w danym punkcie/obszarze i wyświetla ją na ekranie. Czy istnieje inny sposób na wyciąganie maksymalnej prędkości z mapy niż takie zapytania po pliki XML?

Jeśli chodzi o obciążanie aplikacji to spokojnie - nie zamierzam komercyjnie ani nawet prywatnie w późniejszym czasie wykorzystywać tej aplikacji. Kilka zapytań poleci tylko dla testów smile Projekt traktuję bardziej jako ciekawostkę/sposób pozyskania nowej wiedzy.

I jeszcze raz dzięki za zainteresowanie wątkiem! Jesteście wielcy big_smile

Offline

#8 2018-12-06 23:18:48

Mateusz Konieczny
Member
Registered: 2013-09-22
Posts: 1,320

Re: Pobieranie wartości prędkości maksymalnej

uwagaTosty wrote:

Faktycznie po zwiększeniu wielkości bboxa dane dotyczące maksymalnej prędkości w punktach się pojawiają.

Sposób działania aplikacji przewiduję w mniej więcej ten sposób: GPS pobiera lokalizację, wysyła się zapytanie do OSM o maksymalną prędkość w danym punkcie/obszarze i wyświetla ją na ekranie. Czy istnieje inny sposób na wyciąganie maksymalnej prędkości z mapy niż takie zapytania po pliki XML?

Typowe działanie takich aplikacji to pobranie wszystkich danych dla całego obszaru - dzięki temu aplikacja może działać bez dostępu do internetu, bez czekania na odpowiedź i nie obciąża serwerów (dane OSM są darmowe, serwery nie).

Jest możliwa pobrania pełnej bazy danych jak i ekstraktów zawierający dany teren (np. Polska/Małopolska). W ostateczności można też to zrobić Overpassem.

Co więcej w niektórych przypadkach proste odcinki drogi mogą być dość długie - i mogą się ciągnąć całymi kilometrami, bez punktów na odcinku drogi. Wtedy lepiej mieć dane załadowane do bazy danych która potrafi odpowiadać na pytania typu "jaka jest najbliższa droga" nie tylko tam gdzie droga zmienia kierunek.

uwagaTosty wrote:

Jeśli chodzi o obciążanie aplikacji to spokojnie - nie zamierzam komercyjnie ani nawet prywatnie w późniejszym czasie wykorzystywać tej aplikacji. Kilka zapytań poleci tylko dla testów smile Projekt traktuję bardziej jako ciekawostkę/sposób pozyskania nowej wiedzy.

Przy takiej skali można sobie pozwolić na dziwniejszą architekturę smile

uwagaTosty wrote:

I jeszcze raz dzięki za zainteresowanie wątkiem! Jesteście wielcy big_smile

Miło że ktoś dane wykorzystuje, po to są mapowane smile

Last edited by Mateusz Konieczny (2018-12-06 23:21:32)

Offline

#9 2018-12-06 23:42:06

uwagaTosty
Member
Registered: 2018-12-05
Posts: 7

Re: Pobieranie wartości prędkości maksymalnej

A w jaki sposób mógłbym pobrać dany obszar? Zakładam że do osiągniecia założonego celu wystarczyło by mi tylko województwo mazowieckie (chociaż może być nawet niewielki obszar żeby zrozumieć jak to działa i nie spędzić dużo czasu na uzupełnianiu bazy). W jakim formacie wtedy będą dane?
I jak to miało by się do bieżącej lokalizacji urządzenia? Sprawdzana była by tylko najbliższa droga ale czy była by na niej informacja o maksymalnej dozwolonej prędkości?

Offline

#10 2018-12-07 00:13:12

Mateusz Konieczny
Member
Registered: 2013-09-22
Posts: 1,320

Re: Pobieranie wartości prędkości maksymalnej

https://wiki.openstreetmap.org/wiki/Downloading_data

Proponuję do takich testów obszar dużo mniejszy niż województwo (np. dzielnica) by można było pominąć problem wydajności.

"W jakim formacie wtedy będą dane?" zależy co pobierzesz. Overpass Turbo np. udostępnia kilka formatów. Ale będzie to trochę inne przedstawienie tej samej treści.

"I jak to miało by się do bieżącej lokalizacji urządzenia? Sprawdzana była by tylko najbliższa droga ale czy była by na niej informacja o maksymalnej dozwolonej prędkości?" to już zaleźy od twojej implementacji. Pewnie najlepsze jest szukanie najbliższej drogi - która albo może mieć dane albo ich nie mieć.

Przy okazji, polecam aplikację StreetComplete na Androida jeśli chodzi o zbieranie takich danych (w tym ograniczeń prędkości jeśli zajrzy się do ustawień i włączy to w liście aktywnych zadań).

Last edited by Mateusz Konieczny (2018-12-07 00:13:40)

Offline

#11 2018-12-07 00:24:04

uwagaTosty
Member
Registered: 2018-12-05
Posts: 7

Re: Pobieranie wartości prędkości maksymalnej

Okej! Mega. Super mi to rozjaśniłeś - dzięki. To teraz pozostaje mi to tylko (albo aż) zaimplementować roll

Offline

Board footer

Powered by FluxBB