Migreren van Google Maps Geocoding naar GeoRex: de complete gids
Terug naar blog
🚀 Aan de Slag

Migreren van Google Maps Geocoding naar GeoRex: de complete gids

GeoRex Team11 februari 202612 min leestijd

Stap voor stap overstappen van Google Maps Geocoding API naar GeoRex. Vergelijk prijzen, privacy, nauwkeurigheid en bekijk code voorbeelden voor een soepele migratie.

Google Maps Geocoding API is jarenlang de standaard geweest voor het omzetten van adressen naar coördinaten. Maar steeds meer Nederlandse developers en bedrijven zoeken een alternatief — vanwege de kosten, privacy-zorgen rond het delen van klantdata met Google, of simpelweg omdat ze een API willen die specifiek is geoptimaliseerd voor Nederlandse adressen. In deze gids laten we je zien hoe je soepel migreert van Google Maps naar GeoRex.

De 5 migratie stappen: API Key, Wrapper, Mapping, Auth en Testing
In 5 stappen van Google Maps naar GeoRex

Waarom overstappen?

De redenen om van Google Maps Geocoding over te stappen zijn divers. Hieronder de drie belangrijkste:

1. Kosten: tot 90% goedkoper

Google rekent $5 per 1.000 geocoding requests (na de gratis $200/maand credit). Dat klinkt redelijk, maar bij grotere volumes loopt het snel op. Een applicatie met 100.000 requests per maand kost bij Google al ~$400/maand. Bij GeoRex betaal je vanaf €19/maand voor 10.000 requests, en slechts €99/maand voor 100.000 requests — een besparing van meer dan 75%.

Google MapsGeoRex
1.000 requests/maandGratis (credit)Gratis
10.000 requests/maand~$40/maand€19/maand
50.000 requests/maand~$200/maand€49/maand
100.000 requests/maand~$400/maand€99/maand
500.000 requests/maand~$2.000/maand€249/maand

Gratis uitproberen

GeoRex biedt 1.000 gratis requests per maand — zonder creditcard. Ideaal om de API te testen voordat je migreert. Bekijk onze pricing.

2. Privacy: geen data naar Google

Elke geocoding request naar Google bevat adresgegevens van je gebruikers. Google verwerkt deze data op hun servers, en hoewel ze aangeven dit niet te koppelen aan advertentieprofielen, blijft het een feit: je stuurt klantlocaties naar een van de grootste databedrijven ter wereld. Onder de AVG kan dit problemen opleveren — zeker als je geen verwerkersovereenkomst hebt.

GeoRex werkt fundamenteel anders. We hanteren een zero-retention beleid: na het verwerken van een request wordt de input direct verwijderd. Geen logging van adressen, geen opslag van coördinaten, geen tracking van gebruikers. Alle verwerking gebeurt op eigen servers in Nederland via RexHosting.nl.

3. Nauwkeurigheid: geoptimaliseerd voor Nederland

Google Maps is een wereldwijde service. Dat betekent compromissen: hun geocoder moet werken voor elk land, elk adresformaat, elke taal. GeoRex is exclusief gebouwd voor Nederland en gebruikt de officiële BAG database — dezelfde bron die de overheid gebruikt. Het resultaat: betere herkenning van huisnummertoevoegingen, postcodes, en woonplaatsen dan welke internationale service dan ook.

  • Correcte afhandeling van toevoegingen zoals "12-bis", "3-hoog" en "4a"
  • Herkenning van alle 9+ miljoen actuele adressen uit de BAG
  • Automatische normalisatie van straatnaamafkortingen (Str. → Straat)
  • Native support voor PC6 postcodes (1234AB) zonder spatie-issues
Vergelijking van Google Maps { lat, lng } formaat versus GeoRex [lon, lat] GeoJSON formaat
Het belangrijkste verschil: coordinaten volgorde is omgekeerd

API vergelijking: Google vs GeoRex

Laten we de twee API's naast elkaar leggen. De response-structuur verschilt, maar de kerndata is vergelijkbaar — waardoor migratie relatief eenvoudig is.

Google Maps Geocoding request

JavaScript
// Google Maps Geocoding API
const response = await fetch(
`https://maps.googleapis.com/maps/api/geocode/json?` +
`address=Damrak+1+Amsterdam&key=${GOOGLE_API_KEY}`
);
const data = await response.json();
const location = data.results[0].geometry.location;
console.log(location.lat, location.lng);
// 52.3760, 4.8964

GeoRex equivalent

JavaScript
// GeoRex Geocoding API
const response = await fetch(
`https://api.georex.nl/v1/autocomplete?` +
`q=Damrak+1+Amsterdam`,
{
headers: {
'Authorization': `Bearer ${GEOREX_API_KEY}`
}
}
);
const data = await response.json();
const [lon, lat] = data.features[0].geometry.coordinates;
console.log(lat, lon);
// 52.3760, 4.8964

GeoJSON standaard

GeoRex retourneert data in GeoJSON formaat (RFC 7946). Dit is een open standaard die direct werkt met Leaflet, MapboxGL, Turf.js en andere geo-bibliotheken. Google gebruikt een eigen formaat.

Stap-voor-stap migratie

Stap 1: GeoRex API key aanmaken

Registreer gratis op georex.nl en maak een API key aan in je dashboard. Je krijgt direct toegang tot 1.000 requests per maand.

Stap 2: Wrapper functie aanpassen

De meeste projecten hebben een geocoding helper functie die de API aanroept. Je hoeft alleen deze wrapper aan te passen — de rest van je code blijft ongewijzigd.

TypeScript
// VOOR: Google Maps wrapper
async function geocode(address: string) {
const res = await fetch(
`https://maps.googleapis.com/maps/api/geocode/json?` +
`address=${encodeURIComponent(address)}&key=${process.env.GOOGLE_API_KEY}`
);
const data = await res.json();
if (!data.results.length) return null;
const { lat, lng } = data.results[0].geometry.location;
return { lat, lon: lng };
}
// NA: GeoRex wrapper
async function geocode(address: string) {
const res = await fetch(
`https://api.georex.nl/v1/autocomplete?` +
`q=${encodeURIComponent(address)}`,
{
headers: {
'Authorization': `Bearer ${process.env.GEOREX_API_KEY}`
}
}
);
const data = await res.json();
if (!data.features.length) return null;
const [lon, lat] = data.features[0].geometry.coordinates;
return { lat, lon };
}

Let op: coordinaten volgorde

Google retourneert { lat, lng } terwijl GeoRex (GeoJSON) de volgorde [longitude, latitude] gebruikt. Dit is de meest voorkomende fout bij migratie. Zorg dat je de destructuring correct aanpast.

Stap 3: Response mapping

Als je meer dan alleen coördinaten gebruikt (straat, stad, postcode), moet je de response mapping aanpassen. Hier is een complete mapping:

Google Maps veldGeoRex veldVoorbeeld
results[0].geometry.location.latfeatures[0].geometry.coordinates[1]52.3760
results[0].geometry.location.lngfeatures[0].geometry.coordinates[0]4.8964
address_components[type=route]features[0].properties.streetDamrak
address_components[type=street_number]features[0].properties.housenumber1
address_components[type=postal_code]features[0].properties.postcode1012LG
address_components[type=locality]features[0].properties.cityAmsterdam
address_components[type=province]features[0].properties.stateNoord-Holland

Het GeoRex response-formaat is platter en eenvoudiger dan Google's geneste address_components array. Je hoeft niet meer door een array te zoeken naar het juiste component type — de velden staan direct op het properties object.

Stap 4: Authenticatie omzetten

Google gebruikt een API key als query parameter (?key=...). GeoRex gebruikt een Bearer token in de Authorization header. Dit is veiliger omdat de key niet in URL logs of browser history verschijnt.

TypeScript
// Google: key in URL (zichtbaar in logs)
fetch(`https://maps.googleapis.com/maps/api/geocode/json?key=${API_KEY}&...`)
// GeoRex: Bearer token in header (niet zichtbaar in URL logs)
fetch(`https://api.georex.nl/v1/autocomplete?q=...`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
})

Stap 5: Testen en valideren

Voordat je de migratie naar productie brengt, test je met een set representatieve adressen. Vergelijk de resultaten van beide API's:

TypeScript
// Migratie validatie script
const testAddresses = [
"Damrak 1, Amsterdam",
"Coolsingel 40, Rotterdam",
"Lange Voorhout 8, Den Haag",
"Domplein 1, Utrecht",
"Grote Markt 1, Groningen",
"1234AB 5", // Postcode + huisnummer
"Keizersgracht 672a", // Met toevoeging
];
for (const address of testAddresses) {
const result = await geocode(address);
console.log(`${address} → ${result?.lat}, ${result?.lon}`);
}

Gratis tier voor testing

Gebruik de gratis GeoRex tier (1.000 requests/maand) om je migratie te testen. Pas als je tevreden bent met de resultaten, schakel je productieverkeer over.

Framework-specifieke migratie

React / Next.js

Als je @react-google-maps/api of een vergelijkbare library gebruikt voor autocomplete, kun je GeoRex als vervanging gebruiken met een custom hook:

TypeScript
import { useState, useCallback } from "react";
import debounce from "lodash.debounce";
export function useGeoRexAutocomplete() {
const [suggestions, setSuggestions] = useState([]);
const [loading, setLoading] = useState(false);
const search = useCallback(
debounce(async (query: string) => {
if (query.length < 2) {
setSuggestions([]);
return;
}
setLoading(true);
try {
const res = await fetch(
`https://api.georex.nl/v1/autocomplete?q=${encodeURIComponent(query)}`,
{
headers: {
"Authorization": `Bearer ${process.env.NEXT_PUBLIC_GEOREX_API_KEY}`
}
}
);
const data = await res.json();
setSuggestions(data.features || []);
} finally {
setLoading(false);
}
}, 300),
[]
);
return { suggestions, loading, search };
}

PHP / Laravel

PHP
<?php
// VOOR: Google Maps in Laravel
use Geocoder; // spatie/geocoder package
$result = app('geocoder')->geocode('Damrak 1, Amsterdam')->get();
// NA: GeoRex in Laravel
$response = Http::withToken(config('services.georex.key'))
->get('https://api.georex.nl/v1/autocomplete', [
'q' => 'Damrak 1, Amsterdam',
]);
$feature = $response->json('features.0');
$lat = $feature['geometry']['coordinates'][1];
$lon = $feature['geometry']['coordinates'][0];
$city = $feature['properties']['city'];

Python

Python
# VOOR: Google Maps
from googlemaps import Client
gmaps = Client(key="GOOGLE_API_KEY")
result = gmaps.geocode("Damrak 1, Amsterdam")
# NA: GeoRex
import requests
def geocode(address: str) -> dict | None:
response = requests.get(
"https://api.georex.nl/v1/autocomplete",
params={"q": address},
headers={"Authorization": f"Bearer {GEOREX_API_KEY}"}
)
features = response.json().get("features", [])
if not features:
return None
coords = features[0]["geometry"]["coordinates"]
props = features[0]["properties"]
return {
"lat": coords[1],
"lon": coords[0],
"street": props.get("street"),
"housenumber": props.get("housenumber"),
"postcode": props.get("postcode"),
"city": props.get("city"),
}

Veelgemaakte fouten bij migratie

  1. Coordinaten volgorde verwisseld — GeoJSON gebruikt [lon, lat], Google gebruikt {lat, lng}. Dit is veruit de meest voorkomende fout.
  2. API key in URL — GeoRex verwacht een Bearer token in de header, niet als query parameter. Requests zonder header geven een 401.
  3. Verwachten van formatted_address — GeoRex heeft geen enkel "formatted address" veld. Bouw het zelf op uit properties: ${street} ${housenumber}, ${postcode} ${city}.
  4. Geen error handling voor lege resultaten — Controleer altijd of features.length > 0 voordat je het eerste resultaat gebruikt.
  5. Rate limiting niet aangepast — GeoRex rate limits verschillen per plan. Controleer je dashboard voor actuele limieten.

Feature vergelijking

FeatureGoogle MapsGeoRex
Nederlandse adressenGoedUitstekend (BAG data)
Huisnummer toevoegingenMatigVolledig (bis, boven, a-z)
Privacy / Zero retentionNeeJa
Data opslag locatieVS/GlobaalNederland
Response formaatEigen formaatGeoJSON (open standaard)
AuthenticatieURL parameterBearer token (veiliger)
Gratis tier$200 credit/maand1.000 requests/maand
AVG-compliant by designNee (DPA nodig)Ja
Wereldwijde dekkingJaAlleen Nederland
AutocompleteJa (Places API)Ja (ingebouwd)

Alleen Nederland nodig?

Als je applicatie uitsluitend Nederlandse adressen verwerkt, biedt GeoRex betere resultaten dan een wereldwijde service. Heb je ook internationale adressen nodig? Dan kun je GeoRex voor Nederland gebruiken en een andere service voor de rest — dat is nog steeds goedkoper dan Google voor alles.

Migratie checklist

  • GeoRex account aangemaakt en API key gegenereerd
  • Geocoding wrapper functie aangepast naar GeoRex endpoint
  • Coordinaten volgorde gecontroleerd: [lon, lat] → { lat, lon }
  • Authenticatie omgezet van URL parameter naar Bearer header
  • Response mapping aangepast (address_components → properties)
  • Test suite uitgevoerd met representatieve adressen
  • Error handling getest (lege resultaten, rate limits, netwerk fouten)
  • Monitoring opgezet voor response tijden en foutpercentages
  • Google Maps API key gedeactiveerd na succesvolle migratie

Conclusie

Migreren van Google Maps Geocoding naar GeoRex is een relatief eenvoudig proces — de grootste aanpassing is de response structuur en de coordinaten volgorde. Wat je er voor terugkrijgt is aanzienlijk: lagere kosten, betere privacy, nauwkeurigere resultaten voor Nederlandse adressen, en een API die gebouwd is met de AVG in gedachten.

De meeste developers hebben de migratie binnen een middag afgerond. Begin met de gratis tier, test je belangrijkste use cases, en schakel geleidelijk over. Je klanten en je budget zullen je dankbaar zijn.

Hulp nodig bij de migratie?

Heb je vragen over de migratie of loop je ergens tegenaan? Neem contact met ons op — we helpen je graag. Voor enterprise migraties bieden we ook begeleide onboarding aan.

migratiegoogle-mapsalternatiefvergelijkingprivacykosten
Delen:

Gerelateerde artikelen

Klaar om te beginnen met GeoRex?

Probeer onze geocoding API gratis en ontdek hoe eenvoudig adresverwerking kan zijn.

Cookie-instellingen

Wij gebruiken optionele analytische cookies om onze website te verbeteren. Deze cookies worden alleen geplaatst met uw expliciete toestemming. Meer informatie