Hur geokodar jag en svensk adress gratis?
curl 'https://api.kart-api.se/v1/geocode?q=Storgatan%201,%20Motala'Inget konto, ingen nyckel för de första 200 anropen per dygn. Svaret:
{
"query": "Storgatan 1, Motala",
"antal": 4,
"spridning": { "traffar": 0, "kommuner": 0, "entydig": null,
"skal": "frågan matchar inget ortnamn — spridningen är OMÄTT" },
"results": [
{ "lat": 58.5433, "lon": 15.0251, "namn": "Storgatan, Motala, …",
"tier": "address", "kalla": "osm" }
],
"attribution": ["© OpenStreetMap-bidragsgivare · ODbL 1.0"]
}Läs tier och spridning först
tier säger precisionen: address är gatunivå, place är en ortscentroid, kommun är hela kommunen. En place-träff är inte en dålig adress utan ett annat slags svar, och ska inte ritas som en nål på en tomt.
spridning säger hur många kommuner namnet finns i, räknat före limiten. entydig: null betyder att frågan inte gick att mäta som ortnamn (en gatuadress är inget ortnamn). Behandla aldrig null som true.
Begränsa till en kommun
curl 'https://api.kart-api.se/v1/geocode?q=Bergsv%C3%A4gen%201&kommunkod=0562'Filtret mäter var träffen ligger (punkt i kommunpolygon), inte vad namnet innehåller. Blir listan tom får du fältet kommunfilter med skälet: "ingen träff i kommunen" och "platsen finns inte" är olika saker.
Vad källan är
Ortnamn och kommunnamn kommer från Lantmäteriet (CC BY 4.0), gatuadresser från OpenStreetMap (ODbL). Adressregistret som svenska myndigheter använder ligger bakom ett tillstånd som binder oss till redaktionell användning, så det ingår inte här. En nybyggd gata kan därför saknas.