Supabase als backenddienst · Les

Geavanceerde geospatiale gegevens (PostGIS)

Integreer PostGIS om complexe geospatiale gegevens te verwerken, locatiegebaseerde query's uit te voeren en kaartfuncties in uw app te bouwen

Les 2 van 311 stappen

Geavanceerde geospatiale gegevens (PostGIS) is een gratis Supabase als backenddienst-les op CoddyKit. Dit is les 2 van 3. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Supabase als backenddienst. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Supabase als backenddienst bevat in totaal 3 lessen.

Geospatiale mogelijkheden benutten

Welkom bij geavanceerde geospatiale gegevens (PostGIS)! In deze les bekijken we hoe je locatiegegevens rechtstreeks in je Supabase-database verwerkt.

Geospatiale gegevens zijn cruciaal voor apps die werken met kaarten, locaties, navigatie of nabijheidsdiensten.

Wat is PostGIS?

PostGIS is een krachtige opensource-extensie voor PostgreSQL die ondersteuning voor geografische objecten toevoegt.

  • De extensie verandert je database in een ruimtelijke database.
  • Je kunt er locatiegegevens (punten, lijnen en polygonen) mee opslaan, opvragen en analyseren.
  • Supabase is gebaseerd op PostgreSQL en ondersteunt PostGIS volledig.

Waarom PostGIS gebruiken?

Traditionele databases slaan locaties op in afzonderlijke breedtegraad- en lengtegraadkolommen, waardoor complexe query's lastig worden.

PostGIS biedt gespecialiseerde functies om:

  • Afstanden tussen punten te berekenen.
  • Locaties binnen een bepaalde straal te vinden.
  • Te bepalen of punten zich binnen een gebied bevinden.
  • Complexe ruimtelijke joins en analyses uit te voeren.

De PostGIS-extensie inschakelen

Voordat je PostGIS gebruikt, moet je de extensie inschakelen in je Supabase-project. Dit is een eenmalige stap die je via de SQL Editor in je Supabase-dashboard uitvoert.

Voer eenvoudig de volgende opdracht uit:

CREATE EXTENSION IF NOT EXISTS postgis;

Geospatiale gegevenstypen

PostGIS introduceert nieuwe gegevenstypen om ruimtelijke informatie op te slaan:

  • GEOMETRY: Slaat gegevens op een tweedimensionaal cartesisch vlak op (een model met een platte aarde). Geschikt voor kleinschalige, lokale gebieden.
  • GEOGRAPHY: Slaat gegevens op een bolvormige wereld op (coördinaten uit de echte wereld). Het beste voor grootschalige, wereldwijde toepassingen.

Voor de eenvoud gebruiken we in de voorbeelden voornamelijk GEOMETRY, maar voor afstanden in de echte wereld heeft GEOGRAPHY vaak de voorkeur.

Een tabel met ruimtelijke gegevens maken

Laten we een tabel maken om interessante locaties, zoals koffiebars, op te slaan met een kolom van het type GEOMETRY. De SRID (Spatial Reference ID) 4326 is de standaard voor breedtegraad en lengtegraad.

CREATE TABLE coffee_shops (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name TEXT NOT NULL,
  location GEOMETRY(Point, 4326)
);

Geospatiale punten invoegen

Om een punt in te voegen gebruiken we de functie ST_GeomFromText(). Deze zet een Well-Known Text-weergave (WKT) om in een PostGIS-geometrieobject. De indeling is 'POINT(longitude latitude)'.

INSERT INTO coffee_shops (name, location) VALUES
('Espresso Hub', ST_GeomFromText('POINT(-0.1278 51.5074)', 4326)),
('Bean Scene', ST_GeomFromText('POINT(-0.1419 51.5085)', 4326)),
('Daily Grind', ST_GeomFromText('POINT(-0.1000 51.5200)', 4326));

Dichtstbijzijnde locaties vinden

Een veelvoorkomende taak is het vinden van locaties in de buurt van een specifiek punt. Met ST_Distance() kunnen we de afstand tussen twee geometriepunten berekenen. De eenheid van afstand hangt af van de SRID (bijvoorbeeld meters voor 4326 met het type GEOGRAPHY en graden met het type GEOMETRY).

Hier zoeken we winkels in de buurt van een referentiepunt, zoals de huidige locatie van de gebruiker.

SELECT
  name,
  ST_Distance(
    location,
    ST_GeomFromText('POINT(-0.1300 51.5090)', 4326)
  ) AS distance_in_degrees
FROM
  coffee_shops
ORDER BY
  distance_in_degrees
LIMIT 1;

Efficiënt zoeken naar locaties in de buurt

Voor efficiëntere zoekopdrachten naar nabijheid is ST_DWithin() uitstekend, vooral wanneer je met typen van GEOGRAPHY werkt voor afstanden in de echte wereld. Hiermee controleer je of twee geometrieën zich binnen een opgegeven afstand van elkaar bevinden.

Laten we alle koffiebars vinden die zich binnen 1000 meter van een specifiek punt bevinden, waarbij we GEOGRAPHY gebruiken voor een nauwkeurige afstandsberekening.

SELECT
  name
FROM
  coffee_shops
WHERE
  ST_DWithin(
    location::geography,
    ST_GeomFromText('POINT(-0.1300 51.5090)', 4326)::geography,
    1000 -- 1000 meters
  );

Controle van PostGIS-query's

Je hebt geleerd hoe je PostGIS inschakelt, tabellen met ruimtelijke kolommen maakt en georuimtelijke gegevens invoegt en opvraagt.

Welke PostGIS-functie zou je doorgaans gebruiken om alle interessante locaties te vinden die zich binnen 500 meter van de huidige positie van een gebruiker bevinden, ervan uitgaande dat je het type GEOGRAPHY gebruikt?

Samenvatting: georuimtelijke gegevens

Goed gedaan! Je hebt met PostGIS en Supabase je eerste stappen gezet in de wereld van georuimtelijke gegevens.

  • We hebben de PostGIS-extensie ingeschakeld.
  • Je hebt geleerd over de typen GEOMETRY en GEOGRAPHY.
  • Je hebt tabellen gemaakt en gegevens ingevoegd met WKT.
  • Je hebt eenvoudige ruimtelijke query's uitgevoerd, zoals afstand berekenen en zoeken naar nabijheid, met ST_Distance() en ST_DWithin().

PostGIS biedt enorm veel mogelijkheden voor locatiebewuste toepassingen!

Gratis beginnen

Leer Supabase als backenddienst met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
11
Lessen
40

Veelgestelde vragen

Is de les “Geavanceerde geospatiale gegevens (PostGIS)” gratis?

Ja — de volledige tekst van “Geavanceerde geospatiale gegevens (PostGIS)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Supabase als backenddienst wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Supabase als backenddienst bevat in totaal 3 lessen.

Wat leer ik in “Geavanceerde geospatiale gegevens (PostGIS)”?

Integreer PostGIS om complexe geospatiale gegevens te verwerken, locatiegebaseerde query's uit te voeren en kaartfuncties in uw app te bouwen Je oefent met Supabase als backenddienst door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Supabase als backenddienst te beginnen?

Ervaring vooraf is niet nodig. Supabase als backenddienst op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 3.

Hoe lang duurt de les “Geavanceerde geospatiale gegevens (PostGIS)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Supabase als backenddienst?

Ja. Elke les over Supabase als backenddienst bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Postgres-extensies gebruiken
  2. Geavanceerde geospatiale gegevens (PostGIS)
  3. Full-text search en vector embeddings met pgvector
← Terug naar Supabase als backenddienst