Kaarten en bestemmingen in Coda
Met dat een deel van mijn werk zich situeert in het vervoer, krijg ik regelmatig te maken met berekeningen die verband houden met afstanden. In een eerder artikel schreef ik al dat het berekenen van afstanden binnen Coda niet volstaat.
Binnen Coda bestaat er een functie om een afstand uit te rekenen genaamd ‘Distance()’. Deze is gebaseerd op de Haversine formule. Ik noem de uitkomst voor het gemak de ‘Tinder afstand’. Er wordt een zo recht als mogelijke lijn getrokken tussen twee punten. Deze formule is bruikbaar in tal van domeinen, maar niet als je gebonden bent aan een voertuig en je geacht wordt je over de weg te bewegen.
En aan deze vaststelling is nog niets veranderd. Echter wat ik toen nog niet wist was dat er een ‘Verborgen Functie’ bestond waarmee je kaartjes met daarop afstanden en reistijden kan tonen in je Coda Doc. Niet onbelangrijk is dat je deze waarden niet kan uitlezen om ze in een tabel te zetten als basis voor vervolgberekeningen. Zoals je hieronder ziet, leeft de informatie alleen binnen het kaartje. Dat is nog niet geheel wat willen, maar wel een fijne extra.
Het kaartje hierboven wordt opgeroepen door de volgende functie:
GoogleDirections("paleis op de dam, amsterdam","palais royale, bruxelles",1024,640,"driving")
De functie GoogleDirections kent de volgende variablen:
- vertrekadres (of coördinaten) en deze binnen aanhalingstekens en gevolgd door een komma,
- bestemming (of coördinaten) en deze binnen aanhalingstekens en gevolgd door een komma,
- de breedte van het kaartje in pixels, echter zonder vermelding van px en zonder aanhalingstekens, dus alleen getalletjes en gevolgd door een komma,
- idem de hoogte (helaas werkt 100% niet), ook gevolgd door een komma
- en ten laatste hoe je je wilt verplaatsen. De volgende opties worden voorgesteld en deze lijken erg op de variabelen die ik eerder elders beschreef: driving, walking, bicycling, transit, flying . Ook één van deze weer tussen aanhalingstekens en afsluiten met je haakje.
Voila en zo heb je een kaartje binnen Coda.
Een kaartje in een tabel
Eens je bovenstaande door hebt, is het een kleinigheidje om ook kaartjes in je tabel te tonen. Zie hieronder.
Je ziet hoe eenvoudig het is en hoe fouten gecorrigeerd worden. Ik schreef “Tour de Eiffel”, echter dat is onjuist. In het Frans is het “la tour Eiffel” , maar dat maakte niet uit voor het resultaat. Google is slim genoeg en kiest de juiste toren in Parijs. Wil je een indicatie vanaf waar je je bevindt, dan gebruik je onderstaande (verborgen) functie. Je browser dient dan wel toe te staan dat je locatie gedeeld wordt.
CurrentLocation()
De code achter GoogleDirections is kinderlijk eenvoudig, maar net iets anders dan die hierboven. Het was een kwestie van invullen.
Ik wist immers al dat ik een vertrek adres nodig had, een bestemming, een breedte, hoogte en een manier van voortbewegen (mode). Ik begon te typen en automatisch werden de opties me geboden en kon ik de functie bij elkaar klikken. Ik was en ben verbaasd over de eenvoud, ook omdat je geen Google API key nodig hebt. Hieronder nog eens de code uit mijn document.
GoogleDirections(thisRow.Origin,thisRow.destination, width: thisRow.width,height: thisRow.hight,mode: thisRow.mode)
Table Views
In de Coda gemeenschap wordt regelmatig de vraag opgeworpen of Coda nu een (relationele) database is met extra’s of toch eerder een document met daarin een slim gedeelte van een relationele database. Wat mij betreft het laatste. De product ontwikkeling toont toch vooral veel aandacht voor hoe een document eruit komt te zien. Vanuit dat perspectief zijn ‘Table Views’ dan ook belangrijk. Hieronder een voorbeeld. Ik ben persoonlijk geen fan van deze views, echter blijkens de enthousiaste reacties her en der, word mijn aanvoelen niet breed gedeeld.
Tot slot, er bestaat binnen de Coda Community een wensenlijst en hoog staat de integratie met Google Maps. Dus wie weet schrijf ik in een volgende blogpost over een GM Packs en is opbouw van een API in deze overbodig.
Mijn naam is Christiaan Huizer en ik ben eigenaar van Huizer Automatisatie. In mijn rol als bedrijfsadviseur ben ik actief in het midden- en kleinbedrijf in Wallonië, Brussel, Vlaanderen en Nederland. Mijn klanten vragen me vooral om hun bedrijf voordelig te vereenvoudigen en versnellen. Ik maak daarbij gebruik van tools als AirTable, Coda, Zapier, MailJet en TypeForm.