One of the features we are excited about in kMaps is the point of view functionality with 3-axis motion. To change the angle, put two fingers on the map and then swipe upward or downwards. Currently, there is a limitation for the minimal angle which will be changed with later releases of the product. This feature gives our maps a different look and can be more informative when reading the map. To make this a reality was not easy, so here is some insight into the process.
– kMaps can render an open world view with 3 billions vertices. The camera can move around the open world rendering large amounts of data. However, the app can’t load all the data at once so we just make a separate rendering cycle with different camera parameters. In other words, the app needs to fetch data constantly based on different camera views.
– Fetching data. This can be achieved different ways. One way is when the camera moves on 2-axises and the data around it renders on a plane. The second and more complicated way, which we chose to develop, is when the camera is completely flexible. It can be rotated in any direction on 3-axises and the data rendering surface can be more complex then just one plane. In this case, detecting rectangles, which are fetched from our database, is more complicated because of different projections and perspectives, so the app also needs to filter the results for areas which are not visible.
When we were researching and developing this we needed a nice and simple visualization software. We found, preinstalled, grapher from Apple. It was enough to make calculations and test the results with visualization. In our case it was a better solution than Octave.
Our earlier experiments with a flying camera in the process of researching