9 Locatie modules in Drupal voor jouw maps

03 Jul 2015

Joris Snoek - Business Dev
+31 (0)20 - 261 14 99

Locatie toepassingen bouwen in een Drupal cms lijkt een hele klus, maar Drupal kent een aantal modules die je snel op weg kunnen helpen.

Vaak wordt ook gedacht dat je een mobiele App moet bouwen voor locatie toepassingen. Maar het kan ook prima met een mobiel geschikte, responsive, Drupal website.

Enkele voorbeelden:

  • Hotels in huidige buurt zoeken
  • Locaties zien op een kaart
  • Dichtstbijzijnde vestiging van een winkel direct laten zien

9 modules die je op weg helpen:

#1) Location

Dit is de meest gebruikte en meest uitgebreide module. In de kern faciliteert hij adres data, welke hij koppelt aan Drupal nodes, users en andere content.

De basis hierin zijn uiteraard ingevoerde adressen, deze module zal deze omzetten naar ‘latitude’ en  ‘longitude' (breedtegraad en lengtegraad), wat geocoding  genoemd wordt.  Daarna past deze module berekeningen toe om gewenste gegevens op het scherm te krijgen.

Het fysieke adres is dus belangrijk (het straat adres), maar alles wordt berekend met ‘latitude’ en  ‘longitude’.

Verder biedt de module Views integratie, waardoor je selecties en sorteringen van locatie-informatie op het scherm kan toveren zonder coderen.

https://drupal.org/project/location

#2) Addressfield

Ook een veelgebruikte module die in eerste instantie voornamelijk voor Drupal Commerce integratie werd ingezet, maar ondersteunt tegenwoordig ook goed Drupal sites zonder Commerce.

Het is een relatief snelle oplossing voor het genereren van eenvoudige kaarten, zonder al te veel berekeningen.

In Drupal 8 wordt deze overigens vervangen door de Address module

https://drupal.org/project/addressfield

#3) Geofield

Deze module genereert een veld, waarin je locatie data bij een node op kunt slaan. Denk aan ‘points, lines, polygons, multitypes etc’.  Enkele toepassingen:

  • Tekenen van locaties op kaarten
  • HTML5 Geolocation: vraag een browser (bv Chrome) om huidige GPS coordinaten
  • Integratie van data uit de Geocoder module

https://drupal.org/project/geofield

#4) Geo Map Field

Genereert een extra veld binnen je Drupal cms, die je kunt toevoegen aan een content type.

Content managers kunnen vervolgens interactief een locatie op een map aanklikken. Ook kunnen ze het zoom nivo instellen. Dit is handig als je bijvoorbeeld 100 winkels hebt en deze met locatie gegevens makkelijk wilt invoeren.

https://www.drupal.org/project/google_map_field

#5) GMap

Genereer locatie informatie op een Google Map. Bouw dus bijvoorbeeld interactieve kaarten waar je gebruikers op plaatst, locaties van winkels of de dichtstbijzijnde kapper.

De module is wel ietwat lastig om op te zetten en je hebt sowieso een Google Maps API key nodig.

https://drupal.org/project/gmap

#6) Geocoder

Module die voornamelijk geocoding doet: omzetten van adres gegevens naar breedtegraad en lengtegraad. En andersom: als breedte -en lengtegraad bekend zijn, het straatadres genereren.

Andere modules kunnen hier gebruik van maken.

https://drupal.org/project/geocoder

#7) Google Store Locator

Deze Drupal module gebruikt de Google Store Locator Utility Library en Google Maps om een ‘Store locator’ pagina te genereren.

Een iets minder populaire module, maar zou handig kunnen zijn voor jouw Drupal site.

https://www.drupal.org/project/google_store_locator

#8) OpenLayers

OpenLayers kan je gebruiken als open source alternatief voor Google Maps. Het begint afgelopen jaren meer populair te worden, maar er is minder ondersteuning en voorbeeld code voor beschikbaar dan voor de Google Maps API.

Ben je een privacy fanatic en wil je niet dat Google jouw data inziet? Dan zou dit een goed alternatief kunnen zijn.

https://drupal.org/project/openlayers

#9) Openlayers Locator

Deze module is een alternatief voor enkele modules zoals hierboven genoemd, voor als je kiest om met OpenLayers te gaan werken. Enkele toepassingen van deze Drupal module:

  • Zoeken op dichtstbijzijnde (winkel-) locatie op basis van huidige locatie
  • Je kunt hier ook als ondergrond andere Maps services gebruiken: Google Maps, Virtual Earth (Inmiddels afgestoten door Microsoft) en OpenStreetMap.

Let wel op dat deze module nog in ‘dev’ versie is, er lijkt wel spoedig een update aan te komen.

Momenteel dus niet aan te raden om te installeren op in live Drupal cms, maar wellicht gebruiken voor een proof of concept of voor code voorbeelden.

https://www.drupal.org/project/ol_locator

Geen module, geen probleem

Wanneer bovenstaande modules niet exact doen wat je wilt, of te veel overhead genereren, dan is er veel voorbeeld code beschikbaar op het internet. Start maar eens hier

Google Maps API

Meest gebruikte location service is Google Maps. Die biedt een API, waar ook de Location module gebruik van maakt. Om bijvoorbeeld een adres om te zetten in latitude en longitude. Waarmee vervolgens gerekend kan worden.

Nauwkeurigheid locatie

Hoe exacter het adres ingevoerd, hoe nauwkeurig de locatie zal zijn. Wanneer je bijvoorbeeld ‘Amsterdam’ opvraagt, dan zal de Google Maps API latitude en longitude teruggeven van Amsterdam centrum. Zet je er een straatnaam bij, dan zal hij latitude en longitude teruggeven van betreffende straat.

Je kan in de Location module instellen hoe generiek Google de locatie terug geeft. Bijvoorbeeld als
Google het adres niet kent, wat moet er dan gebeuren? 

Wereldwijd precisie is hierin lastig, Europa en Amerika zijn accuraat, maar delen van Afrika zijn lastiger omdat nog niet alle straten daar exact in kaart zijn gebracht.

Kosten Google Maps API

Google API is meest voor de hand liggende keuze, het is een stabiele, goed te integreren oplossing. En gratis tot 25.000 calls per dag uit één Drupal website. 100.000 calls per dag kost ongeveer €10.000 per jaar.

Je website moet wel gratis content aanbieden, als je content betaald is moet je Google ook betalen. Behalve als je een mobiele App bouwt, dan is alles wel gratis. Dus geen responsive websites, maar een App uit de Apple App store of Google Play.

Afsluitende video: bouw een store locator in Drupal

 

Bron afbeelding

Comments

Nóg meer
kennis nodig?

Check ons ons blog archief >