Hoe toon je foto’s op je kaart in QGIS?

In QGIS is het mogelijk om foto’s op je kaart te laten verschijnen. Zo kan je historisch beeldmateriaal of hedendaagse foto’s tonen op een plek naar keuze. Daarvoor plaats je de foto’s in de attributentabel van je kaartlaag en gebruik je de functie ‘Kaarttips weergeven’. In deze praktijktip leggen we uit hoe je dat doet.

Foto’s tonen met de functie ‘Kaarttips weergeven’

FOTO’S VERZAMELEN IN CENTRALE MAP

Voor je je foto’s kan opnemen in je attributentabel, verzamel je ze in een centrale map op je computer. We raden aan om daarvoor de map te kiezen waarin alle andere bestanden van je QGIS-project opgeslagen zijn. Het is zinvol om in QGIS expliciet aan te geven dat deze map de thuislocatie is voor je project, omdat dat later heel wat werk bespaart:

  1. Ga in de menubalk bovenaan in de QGIS-omgeving naar ‘Project’ en kies voor ‘Eigenschappen’. Er opent een nieuw venster.

    Stap 1

  2. In het veld ‘Thuis voor project’ kies je met de drie puntjes de juiste map op je computer.

    Stap 2

NIEUWE KAARTLAAG AANMAKEN

Om een kaart te maken waarop je foto’s toont, maak je een nieuwe kaartlaag aan.

  1. Ga in de menubalk bovenaan naar ‘Kaartlagen’ > ‘Laag maken’ > ‘Nieuwe Shapefile-laag…’.

    Stap 1

  2. In het venster dat opent, kies je een geometrie. Je kan punten zetten op erg specifieke locaties, maar je kan ook percelen tekenen (polygonen) waaraan je één of meerdere foto’s verbindt. Meer informatie over het aanmaken van een nieuwe kaartlaag vind je in deze praktijktip.
  3. Maak voor je attributentabel een nieuw tekstveld aan. Hier plaats je in een latere stap het bestandspad naar je foto. Kies bij ‘Lengte’ voor een hoog getal, zodat je volledige bestandspad in de tabel past.

    Stap 3

INSTELLINGEN VAN DE ATTRIBUTENTABEL AANPASSEN

Je hebt nu een nieuwe kaartlaag waaraan je je foto’s zal koppelen. Voor je de bestandspaden van de foto’s toevoegt in de attributentabel, doe je het volgende:

  1. Open de laageigenschappen van je kaartlaag.
  2. Kies voor ‘Formulier attributen’ in het donkergrijze menu aan de linkerkant van het venster met de laageigenschappen.
  3. Onder het kopje ‘Fields’ zie je alle kolommen (of ‘velden’) uit je attributentabel. Klik op het foto-veld dat je net hebt aangemaakt.

    Stap 2-3

  4. Rechts verschijnen verschillende opties voor dit veld. Kies bij ‘Type widget’ voor ‘Bijlage’.
  5. Daaronder stel je het ‘Standaard pad’ in. Met de drie puntjes kies je het pad naar de map met foto’s op je computer.
  6. Kies bij ‘Pad opslaan als’ voor ‘Relatief aan pad voor project’. Zo weet het programma dat het al jouw foto’s moet zoeken in de map die je ingesteld hebt als de thuislocatie voor je project.
  7. Bij ‘Modus voor opslag’ kies je vervolgens voor ‘Bestandspaden’. Je zal namelijk bestandspaden in je attributentabel plaatsen waarmee QGIS de juiste foto’s kan terugvinden.

    Stap 4-7

  8. Scrol verder naar beneden en kies in het onderdeel ‘Geïntegreerde documentviewer’ als ‘Type’ voor ‘Afbeelding’. Kies bij ‘Afmetingen’ voor ‘Auto’.
  9. Klik onderaan op ‘OK’.

    Stap 8-9

LOCATIES VAN JE FOTO’S AANDUIDEN OP DE KAART

Nadat je de juiste instellingen hebt aangepast, kan je in je werklaag starten met het tekenen van punten/lijnen/polygonen. Hoe je dat doet, lees je in deze praktijktip.

  1. Wanneer je bij het tekenen de gegevens invult van een geometrie, zie je bij het fotoveld drie puntjes. Dat komt omdat je ingesteld hebt dat in dit veld een bijlage terecht moet komen.
  2. Als je op de drie puntjes klikt, kan je op je computer het juiste fotobestand kiezen.
  3. Je ziet nu de foto verschijnen in het dialoogvenster.
  4. Klik op ‘OK’ om het bestandspad op te slaan. Het pad verschijnt in je attributentabel.

Het bestandspad van je foto in de attributentabel plaatsen

MEERDERE FOTO’S PER PUNT IN JE ATTRIBUTENTABEL PLAATSEN

Het is mogelijk om voor één punt/lijn/polygoon meerdere foto’s toe te voegen in je attributentabel. Daarvoor creëer je een nieuwe kolom, of ‘veld’, voor je attributentabel.

  1. Open de attributentabel van je foto-kaartlaag.
  2. Schakel de functie ‘Bewerken’ in door op het gele potloodje te klikken.
  3. Klik in het menu boven de tabel op ‘Nieuw veld’. Er opent een nieuw venster.

    Stap 2-3

  4. Geef het nieuwe veld een naam en duid bij ‘Type’ aan dat het een tekstveld is. Kies bij ‘Lengte’ voor een hoog getal, zodat je volledige bestandspad in de tabel past.

    Stap 4

Maak zoveel velden bij als nodig. Als je drie foto’s per punt wil tonen, dan heb je daarvoor drie kolommen (‘velden’) nodig, bijvoorbeeld ‘foto1’, ‘foto2’ en ‘foto3’. Pas voor elk van die velden terug de juiste instellingen aan, net zoals je gedaan hebt voor het eerste foto-veld.

Schakel ‘Bewerken’ in voor de attributentabel en vul de nieuwe velden aan met bijkomende foto’s. Met de bewerk-functie in de attributentabel, kan je ook steeds gebruik kan maken van de drie puntjes om naar het juiste fotobestand te navigeren op je computer.

Meerdere fotovelden in de attributentabel

ÉÉN FOTO TONEN PER LOCATIE

Met de functie ‘Kaarttips weergeven’ in QGIS kan je foto’s laten verschijnen op je kaart (meer informatie over de functie ‘Kaarttips weergeven’ vind je in deze praktijktip). Daarvoor moet je de HTML-Kaarttip op de juiste manier invullen.

  1. Om naar de HTML-Kaarttip te gaan, klik je met je rechtermuisknop op je kaartlaag in het Lagenpaneel, kies je voor ‘Eigenschappen’ en vervolgens voor ‘Tonen’ in het grijze menu aan de linkerkant.
  2. Vul in het witte veld volgende code in:
    <img src=”file:///[%@project_home%]/[%”foto1“%]” max-width=”300″ max-height=”300″>

    In dit voorbeeld heet het fotoveld van mijn eerste foto “foto1”. Als jouw fotoveld anders heet, vervang je in deze code “foto1” door de naam van jouw eigen kolom.

    Stap 1-2

  3. Klik links onderaan op ‘OK’.
  4. Schakel ‘Kaarttips weergeven’ in door in de algemene QGIS-omgeving bovenaan deze functie aan te klikken.

    Stap 4

Hover nu met je muis over de locaties waarvoor je een foto opgeslagen hebt. Je foto verschijnt in een wit pop-up-venster.

Foto’s tonen met de functie ‘Kaarttips weergeven’

MEERDERE FOTO’S TONEN PER LOCATIE

Het is mogelijk om meerdere foto’s te tonen op je kaart. Daarvoor moet je de code in je HTML-kaarttip uitbreiden, want er zijn twee aanpassingen nodig.

Onderstaande stappen werken met HTML-code. HTML-code is een computertaal, waarmee je aan een computerprogramma, zoals QGIS, opdrachten kan geven. Bij HTML-code is het belangrijk dat elk teken en elke spatie op de juiste plek staat. Als je dus de codes hieronder wil gebruiken, kopieer je ze best rechtstreeks van deze webpagina en plak je ze vervolgens in QGIS.

Standaardgrootte van de kaarttip

Het witte pop-up-venster waarin je foto’s getoond worden, heeft een standaardgrootte. Dat wil zeggen dat dat venster niet groter wordt naarmate je meer foto’s toont. Daardoor vallen sommige foto’s buiten dit venster en zijn ze niet zichtbaar. Met het juiste stukje code in de HTML-kaarttip zorg je er voor dat je toch alle foto’s kan zien.

Plaats de volgende code in het witte veld van de HTML-kaarttip:

<html>

<body style=”max-width: 300px; max-height: 300px; overflow: auto;”>

<img src=”file:///[%@project_home%]/[% “foto1” %]” style=”max-width: 100%; height: auto;” /><br/>

<img src=”file:///[%@project_home%]/[% “foto2” %]” style=”max-width: 100%; height: auto;” /><br/>

<img src=”file:///[%@project_home%]/[% “foto3” %]” style=”max-width: 100%; height: auto;” /><br/>

</body>

</html>

 

Let op: in dit voorbeeld heten de drie fotovelden ‘foto1’, ‘foto2’ en ‘foto3’. Als jouw fotovelden anders heten, moet je je eigen veldnaam invullen.

De extra code in de tag <body> zorgt ervoor dat de foto’s zich zullen aanpassen aan de grootte van de kaarttip.

  • Een standaard-kaarttip is meestal 300 pixels bij 300 pixels groot. De bovenstaande code geeft aan dat een foto sowieso niet groter kan worden dan dat. Wanneer de foto’s wel buiten het venster van de kaarttip zouden vallen, zorgt deze code ervoor dat de grootte van de foto’s automatisch aangepast wordt, zodat ze toch volledig zichtbaar zijn.
  • In dit voorbeeld wil ik drie foto’s tonen. Omdat de totale breedte van de kaarttip niet langer kan zijn dan 300 pixels, wil dat zeggen dat bij 3 foto’s elke foto maximaal 100 pixels breed mag zijn. Deze code zorgt er bij elke aparte foto voor dat ze niet breder worden dan dat.
  • Deze code zorgt ervoor dat de hoogte van individuele foto’s steeds automatisch aangepast wordt aan de beschikbare ruimte.

Niet even veel foto’s voor elke locatie

Als je niet overal even veel foto’s hebt, moet je duidelijk maken aan QGIS dat wanneer een veld uit de attributentabel leeg is, er ook niets getoond moet worden. QGIS doet dit niet automatisch, waardoor het toch naar een foto zoekt (omdat je die opdracht gegeven hebt in de HTML-code), er geen vindt, en dan een broken link toont. Dat ziet er uit als een blauw vierkantje met een vraagteken.

Broken links

Vul daarom onderstaande code in als je werkt met nul tot drie foto’s per punt. De code zorgt ervoor dat lege velden geen broken link opleveren in de kaarttip. Let er ook hier op dat je overal waar nodig je eigen kolomnamen gebruikt.

<html>

<body style=”max-width: 300px; max-height: 300px; overflow: auto;”>

 

[%CASE

WHEN “foto1” IS NOT NULL AND “foto1” != ”

THEN ‘<img src=”file:///’ || @project_home || ‘/’ || “foto1” || ‘” style=”max-width: 100%; height: auto; margin-top: 10px;” /><br/>’

ELSE ”

END%]

 

[%CASE

WHEN “foto2” IS NOT NULL AND “foto2” != ”

THEN ‘<img src=”file:///’ || @project_home || ‘/’ || “foto2” || ‘” style=”max-width: 100%; height: auto; margin-top: 10px;” /><br/>’

ELSE ”

END%]

 

[%CASE

WHEN “foto3” IS NOT NULL AND “foto3” != ”

THEN ‘<img src=”file:///’ || @project_home || ‘/’ || “foto3” || ‘” style=”max-width: 100%; height: auto; margin-top: 10px;” /><br/>’

ELSE ”

END%]<br/>

 

</body>

</html>

 

Toon je graag meer dan drie foto’s? Plak dan onderstaand stukje code net onder de gegevens voor de derde foto. Kijk ook hier de kolomnamen na.

[%CASE

WHEN “foto4” IS NOT NULL AND “foto4” != ”

THEN ‘<img src=”file:///’ || @project_home || ‘/’ || “foto4” || ‘” style=”max-width: 100%; height: auto; margin-top: 10px;” /><br/>’

ELSE ”

END%]<br/>

 

 

FOTO’S ROTEREN

Staande foto’s worden vaak verkeerd getoond: ze verschijnen in liggende oriëntatie. Voeg daarom informatie over de oriëntatie van een foto toe in de attributentabel. Vervolgens pas je de code aan in de HTML-kaarttip.

Een oriëntatieveld aanmaken in de attributentabel

Om de foto te draaien wanneer nodig, heeft QGIS informatie nodig over de oriëntatie van die foto. Met andere woorden: je wil duidelijk maken welke foto’s staande foto’s zijn. Die informatie neem je op in je attributentabel.

  1. Open de attributentabel van je foto-kaartlaag.
  2. Klik het gele potloodje aan om ‘Bewerken’ in te schakelen en klik op de knop ‘Veld toevoegen’. Er opent een nieuw venster.
  3. Kies een naam voor het nieuwe veld, bijvoorbeeld ‘oriënt1’ om de oriëntatie van ‘foto1’ aan te geven. Kies bij het ‘Type’ voor ‘Tekst (string)’ en bij ‘Lengte’ voor ‘20’.
  4. Klik op ‘OK’.

    Stap 2-4

Vul in dit veld per foto de juiste oriëntatie in.

  • Voor verticale foto’s gebruik je bijvoorbeeld ‘portret’ of ‘staand’.
  • Voor horizontale foto’s gebruik je bijvoorbeeld ‘landschap’ of ‘liggend’.

Let er op dat je consequent bent in je keuze. Als je kiest voor ‘portret’, gebruik je overal ‘portret’ bij verticale foto’s. Als je kiest voor ‘landschap’, gebruik je overal ‘landschap’ bij je horizontale foto’s.

Pak je dit graag efficiënt aan? Gebruik dan meerkeuzelijsten in je attributentabel. Zo hoef je zelf niets te typen, maar kan je steeds een optie aanklikken uit een keuzelijst. Zo win je tijd en voorkom je typfouten. Hoe je zo’n meerkeuzelijst gebruikt, lees je in deze praktijktip.

Heb je meerdere foto’s voor één locatie? Maak dan meerdere oriëntatievelden aan, bijvoorbeeld ‘oriënt1’, ‘oriënt2’ en ‘oriënt3’, die dan horen bij de velden ‘foto1’, ‘foto2’ en ‘foto3’.

Code in HTML-kaarttip aanpassen

Pas de code in de HTML-kaarttip aan zodat QGIS de informatie uit je attributentabel kan gebruiken. Stel dat je tot twee foto’s per punt wil tonen, kan je onderstaande code gebruiken in de HTML-kaarttip. Let er op dat je steeds je eigen kolomnamen en waarden gebruikt waar nodig.

<html>

<body style=”max-width: 300px; max-height: 300px; overflow: auto;”>

 

[% CASE WHEN “foto1” IS NOT NULL AND “foto1” != ” THEN

‘<img src=”file:///’ || @project_home || ‘/’ || “foto1” || ‘” style=”max-width: 100%; height: auto; ‘ ||

CASE WHEN “oriënt1” = ‘portret‘ THEN ’transform: rotate(90deg);’ ELSE ” END || ‘” /><br/>’ ELSE ” END %]

 

[% CASE WHEN “foto2” IS NOT NULL AND “foto2” != ” THEN

‘<img src=”file:///’ || @project_home || ‘/’ || “foto2” || ‘” style=”max-width: 100%; height: auto; margin-top: 40px; ‘ ||

CASE WHEN “oriënt2” = ‘portret‘ THEN ’transform: rotate(90deg);’ ELSE ” END || ‘” /><br/>’ ELSE ” END %]

 

</body>

</html>

 

 

Toon je graag meer dan twee foto’s? Plak dan onderstaand stukje code net onder de gegevens voor de tweede foto. Kijk ook hier de kolomnamen en waarden na.

[% CASE WHEN “foto3” IS NOT NULL AND “foto3” != ” THEN

‘<img src=”file:///’ || @project_home || ‘/’ || “foto3” || ‘” style=”max-width: 100%; height: auto; margin-top: 40px; ‘ ||

CASE WHEN “oriënt3” = ‘portret‘ THEN ’transform: rotate(90deg);’ ELSE ” END || ‘” /><br/>’ ELSE ” END %]

 

 

OPMERKINGEN TOEVOEGEN AAN JE FOTO’S

Het is mogelijk om een opmerking te laten verschijnen bij je foto. Daarvoor voeg je een nieuw veld toe aan je attributentabel.

  1. Doe dat op dezelfde manier als voor het oriëntatieveld, maar zorg ervoor dat het getal bij ‘Lengte’ groot genoeg is, zodat je volledige opmerking in de tabel past.
  2. Als het nieuwe veld aangemaakt is, vul je opmerkingen aan waar nodig en sla je de wijzigingen op.

    Stap 1-2

Om de notitie te kunnen tonen op je kaart, keer je terug naar de HTML-kaarttip. Laat de code die daar in het witte veld staat gewoon staan, maar voeg helemaal onderaan het volgende toe:

</br>

[%”notitie”%]

 

 

Voorzie het tonen van een notitie in het witte veld van de HTML-kaarttip

Schakel ‘Kaarttips weergeven’ in, hover met je muis over de locatie van je foto en je ziet je foto met opmerking verschijnen.

TIPS EN EXTRA INFORMATIE

Let op: QGIS heeft regelmatig updates, waardoor sommige functies er anders uitzien. De praktijktip vertrekt vanuit versie Pritzen 3.34.4. Enkele video’s in de links hieronder zijn van toepassing op vroegere versies van het programma, maar geven wel een beeld van de stappen.

Hier kan je terecht voor meer hulp: