Disclaimer: This project is owned by Orb Amsterdam and not by me. I only worked on this with them.
This is an application that I worked on during my internship with Orb Amsterdam. It was the first real project that I got to do and the team and I build it from scratch, with help from the client and the other parties involved.
I did full time programming during my internship, but I also learned alot about making an application, placing/scaling the User Interface and working with Augmented reality. For example Vuforia and ARKit/ARCore/ARFoundation.
For this project, I won't show any code, but instead write about a few different parts that I made.
Go Veluwe is a treasure hunt game for the whole family, where you learn the secrets of the Veluwe. You can find the application in the Play Store and App Store.
You see an overview of the chosen route.
When you arrive at a point, you get to learn a bit about the subject and then get a quiz.
You get to answer the question and if it is right then you get a voucher that shows that you completed that point.
The points on the map that are displayed needed to be underneath or on top of eachother, for that we made a little calulation that placed them correctly.
Map Zoom and Setting Center:
The map needed to know it's center point and it's zoom level ofcourse, so using a few calculations we could set the center anytime and we made a little calculation to also have all of the points in view for the overview screen.
So when the user was close enough we needed the user to be able to get in the "hotzone", there the user would get a new popup to continue to a warm/cold meter to find the object easier.
We wanted the users to be able to play the app offline, for that we needed to be able to cache the map, since it was not allowed to put the app online with cache included. So when the user presses a route, we immediatly cache that routes data, by calculating the zoom level of the map for every point and for the whole overview. Figuring that out was the hard part, since the only things you had were coordinates and a cache limit.