Alternatywa dla Overpass API z własnym kluczem

Wyślij zapytania Overpass QL na nasz endpoint i dostań z powrotem ten sam JSON, na własnym kluczu i limitach planu zamiast wspólnego rate limitu. To nie jest serwer Overpass: odpowiada nasza własna baza OpenStreetMap, obsługując tę część Overpass QL, której aplikacje używają najczęściej, i wprost mówi, gdy zapytanie wymaga czegoś, czego nie obsługuje.

curl https://geo.runningcat.dev/v1/overpass/interpreter \
  -H "Authorization: Bearer YOUR_KEY" \
  --data-urlencode 'data=[out:json][timeout:25];
node["amenity"="drinking_water"](around:2000,46.204,6.143);
out center;'
Przykładowe zapytanie

Skieruj tu swojego klienta

Endpoint przyjmuje zapytanie jako data, tak jak Overpass: w adresie URL, jako pole formularza albo jako surowe ciało POST. Klucz wyślij w nagłówku Authorization albo jako ?key= dla klientów, które nie mogą ustawiać nagłówków.

Odpowiedź ma zwykłe pola version, generator, osm3s i elements. Klient, w którym można zmienić adres serwera, działa z https://geo.runningcat.dev/v1/overpass/interpreter?key=YOUR_KEY, o ile jego zapytania mieszczą się w tym, co wymieniono poniżej. Więcej zapytań jest na stronie z przykładami Overpass QL.

Na co odpowiada

  • Zapytania: node, way, rel, nwr, nw, nr, wr i area, z nazwanymi zbiorami (->.a, .a) i sumami.
  • Filtry tagów: [k], [!k], [k=v], [k!=v], [k~re], [k!~re], [~kre~vre] oraz niewrażliwe na wielkość liter ,i.
  • Gdzie: bbox, around punktu lub linii, poly, identyfikatory, area i is_in. area[...] znajduje granice administracyjne i obszary chronione.
  • Wynik: out z body, skel, ids, tags, geom, center, bb, count, limitem i qt.
  • Ustawienia: [out:json] i [bbox]. [timeout] i [maxsize] są akceptowane, a każde zapytanie dostaje do 30 sekund.

Czym różni się od Overpass

  • Każde zapytanie wymaga bbox, around, poly, obszaru lub identyfikatora. Zapytanie o tag w skali całego świata jest odrzucane.
  • Rekursja (>, <, >>, <<), różnica, foreach, if, make, convert, map_to_area i around zbioru nie są obsługiwane. Podobnie historia i diffy (date, diff, adiff) oraz filtry user, newer i changed.
  • Drogi (ways) przychodzą bez list węzłów, a relacje bez prawdziwych członków. Z out geom droga niesie swoją geometrię, a relacja niesie członków z geometrią.
  • Odpowiedź jest tylko w JSON, z co najwyżej 10 000 elementów w planie Free, 25 000 w Developer i 50 000 w Pro. Metadane edycji (wersje, użytkownicy, changesety) nie są uwzględnione.
  • Dane map są odświeżane co miesiąc, a nie co minutę.

Zapytanie używające czegoś nieobsługiwanego wraca jako błąd z uwagą remark wskazującą, co to było, więc od razu wiesz, co zmienić.

Limity, pod które można planować

Główny publiczny serwer Overpass prosi, by nie przekraczać około 10 000 zapytań i 1 GB pobranych danych dziennie, a przy regularnym użyciu setnej części tego, i odsyła użytkowników komercyjnych do serwerów płatnych lub własnych (wiki OpenStreetMap). Jego rate limit daje każdemu adresowi IP kilka slotów, więc gdy zapytania wysyła Twój backend, wszyscy Twoi użytkownicy dzielą te sloty. Jak to działa, wyjaśnia poradnik o błędach 429 i 504.

Tutaj limity należą do Twojego klucza, a każde zapytanie Overpass liczy się jako jedno żądanie, niezależnie od tego, ile zwraca. Ile może zawierać jedna odpowiedź, zależy od planu.

PlanŻądań dziennieNa minutęNarazElementów w odpowiedziCena
Free50030110,000$0
Developer5,000300425,00014,99 USD miesięcznie
Pro20,0001,200850,00039,99 USD miesięcznie

Po przekroczeniu limitu żądanie jest odrzucane ze statusem 429 i nagłówkiem Retry-After; nic nie jest dodatkowo naliczane. W naszych testach kawiarnie wokół punktu wracały w około 0,2 sekundy, woda pitna w prostokącie wielkości miasta w około 1 sekundę, a piekarnie w granicach Krakowa w około 3 sekundy. Zapytanie o cały kraj przez area może przekroczyć timeout.

Nie tylko dane map, na tym samym kluczu

Klucz daje też prognozy pogody i jakości powietrza, zmierzoną jakość powietrza, poziomy rzek, wysokości, strefy czasowe, routing i przystanki wzdłuż trasy. Zobacz POI wzdłuż trasy, API pogody i wszystko, co robi API.

Plan darmowy daje 500 zapytań dziennie, także w aplikacjach komercyjnych. Załóż konto przez Google lub e-mail i od razu utwórz swoje klucze.