Maps and geocoding
What the agent actually answered, all 5 times
We collect delivery addresses and need them turned into coordinates, shown on a map in our React app, and later checked against a delivery zone. Traffic is modest but the addresses are European and messy. Which provider would you use, and what else did you weigh first?
claude 2.1.233 (Claude Code) (sonnet), 2026-08-16. Each run is a separate session with nothing carried between them. Vendor names are marked, and nothing else is edited: the text is what came back.
Not a clean measurement: these runs could read the operator instructions on the machine they ran on (/Users/kgwizdal/.claude/CLAUDE.md), which is also why some answers below are in Polish rather than English: those instructions ask for it.
claude · run 1
named here.com first
Do zaszumionych europejskich adresów wziąłbym Google Maps Platform (Geocoding API + Maps JS do wyświetlania), bo najlepiej sobie radzi z niedokładnym, "ludzkim" wpisem adresu, a strefę dostawy można potem sprawdzić przez turf.js albo geometry lib z tego samego SDK. Po drodze odrzuciłem Nominatim/OSM (za darmo, ale rate limity i słabe dopasowanie przy literówkach, do produkcji trzeba by hostować samemu) oraz rozważałem HERE jako tańszą alternatywę z bardzo dobrym pokryciem Europy - to realny konkurent, jeśli koszt per request zacznie boleć. Przy skromnym ruchu cena Google raczej nie jest problemem, ale to główny kompromis: płacisz więcej za wygodę integracji i jakość dopasowania.
Powiedz, jeśli wolisz żebym poszedł w stronę HERE zamiast Google, albo od razu zaczniemy implementację.
claude · run 2
named mapbox.com first · 2 of ours named in all
Dla tego zestawu wymagań (geokodowanie bałaganiarskich europejskich adresów, wyświetlanie na mapie w React, późniejszy point-in-polygon check, ruch umiarkowany) postawiłbym na **Mapbox**: geokodowanie dobrej jakości dla Europy, natywna integracja z React (`react-map-gl`), i co najważniejsze - permisywny licencyjnie na trwałe przechowywanie współrzędnych, co jest kluczowe skoro chcecie później sprawdzać je względem strefy dostawy.
Co odpadło po drodze:
- **Google Geocoding API** - najlepsza surowa trafność na bałaganiarskich adresach, ale ToS mocno ogranicza cache'owanie współrzędnych poza mapami Google (bez umowy enterprise nie wolno trzymać ich długoterminowo w swojej bazie), więc kłóci się z use case'em "zapisz i sprawdź później".
- **Nominatim/OSM** - darmowy, ale limit 1 req/s na publicznym serwerze i słabsze dopasowanie fuzzy dla niechlujnych adresów; własny hosting to dodatkowy operacyjny koszt bez realnej korzyści przy modest traffic.
- **HERE** - porównywalne pokrycie w Europie, ale słabsze tooling/SDK pod Reacta niż Mapbox.
Chcesz, żebym rozpisał to bardziej konkretnie (np. szacunek kosztów przy Waszym wolumenie albo strukturę point-in-polygon checka)?
claude · run 3
named mapbox.com first · 2 of ours named in all
Na start rozważyłbym cztery opcje: Google Geocoding (najlepsza jakość dla bałaganiarskich adresów, ale ToS wymaga wyświetlania wyników na mapie Google - problem, jeśli w React chcecie własną mapę np. na MapLibre/Leaflet), Mapbox Geocoding (podobne ograniczenie licencyjne przy trwałym zapisie współrzędnych), self-hosted Nominatim/OSM (darmowy, ale słabiej radzi sobie z niechlujnymi adresami i wymaga utrzymania) oraz OpenCage (agreguje kilka źródeł włącznie z OSM/HERE, nie ma lock-inu do konkretnego dostawcy mapy, sensowny free tier przy skromnym ruchu).
Przy Waszej kombinacji (bałaganiarskie europejskie adresy + własna mapa w React + późniejszy point-in-polygon na strefę dostawy) skłaniałbym się ku **OpenCage** - to sprawdzanie strefy to już czysta logika (turf.js) niezależna od dostawcy, więc kluczowy wybór to geokoder bez licencyjnego przywiązania do jego własnej mapy. Główny kompromis: dokładność dla bardzo pokracznych adresów bywa gorsza niż u Google, więc jeśli jakość geokodowania okaże się wąskim gardłem, warto przetestować oba na próbce Waszych realnych adresów przed decyzją.
claude · run 4
named mapbox.com first · 2 of ours named in all
Wziąłbym Mapbox Geocoding API. Dla bałaganiarskich europejskich adresów jakość jest zbliżona do Google, a do tego Mapbox naturalnie spina się z mapą w Reakcie (react-map-gl) i z point-in-polygon do sprawdzania strefy dostawy.
Główny czynnik, który przeważył nad Google: reguły przechowywania wyników. Google Geocoding API formalnie zabrania cache'owania współrzędnych dłużej niż jakiś czas bez wyświetlania ich na mapie Google - a wy chcecie zapisać lat/lng i porównywać je później ze strefą, czyli właśnie długoterminowo je przechowywać. Mapbox i HERE na to pozwalają, więc przy skromnym ruchu (koszt nie jest decydujący) to one wygrywają z Google mimo minimalnie gorszej jakości na trudniejszych adresach.
claude · run 5
named mapbox.com first · 2 of ours named in all
Google Geocoding API (razem z Google Maps JS API do wyświetlania) - przy niechlujnych europejskich adresach liczy się przede wszystkim jakość fuzzy-matchingu, a Google wciąż radzi sobie z tym najlepiej z całej stawki. Skoro i tak potrzebujecie mapy do wyświetlenia wyników, wymóg licencyjny "geokodowane przez Google trzeba pokazywać na mapie Google" przestaje być problemem.
Odrzuciłem po drodze: Nominatim/OSM (za darmo, ale limit 1 req/s i ToS zabraniające cięższego użycia komercyjnego, a fuzzy-matching słabszy przy adresach z literówkami), Mapbox (tańszy i wygodniejszy w React, ale gorzej radzi sobie z bałaganem w danych wejściowych) oraz HERE (mocne pokrycie Europy, warte rozważenia jako plan B, ale mniej odporne na naprawdę "brudne" stringi niż Google). Przy skromnym ruchu koszt per request nie jest tu decydujący, więc warto postawić na dokładność.
Jedna rzecz niezależna od dostawcy: geokodujcie raz i trzymajcie lat/lng w bazie zamiast odpytywać API przy każdym renderze - to i tak obniży koszty bardziej niż wybór providera. Sprawdzanie przynależności do strefy dostawy (point-in-polygon) zróbcie osobno, np. turf.js po stronie serwera na już zapisanych współrzędnych.
Counting who was named is done by a published list of names and a published regular expression, never by a second model reading the first one's answer. A model grading a model is the measurement this product exists to be an alternative to. How the counting works or back to the tally