MarkerPlacement - google-importer/mixare GitHub Wiki

current state of the placement of markers on the screen Introduction

There are three marker types (categories) in mixare: * Normal markers (POIs) * Navigation markers (NAVs) * Social media markers (BUBs) Normal Markers

TODO Navigation markers

At the moment the navigation marker are positioned by manipulating the vector that displays them on screen. This will be changed by altering the height(altitude) instead, the less we interfere with the locationvectors the better. TODO Social media markers

The socialmedia markers appears as they are floating in the ski. Their position is calculated from the actual latitude+longitude by setting the altitude to a certain height. This height will be explained in the following paragraphs.

The intended behavior is that the social media marker are never placed below roughly 20 degrees (0.35 radians) from the horizon. The more a social media is far, the bigger will be its altitude. This helps the user to read the closest messages withouth having to point the phone too much high. A status message being post at distance (where is the maximum range set by the user to display POIs) it will be displayed at roughly 45 degrees (0.85 radians).

Social media markers will span across +20 and +45 degrees above the horizon.

The altitude is therefore made of three components: double altitude = curGPSFix.getAltitude()+Math.sin(0.35)distance+Math.sin(0.4)(distance/(MixView.dataView.getRadius()*1000f/distance));

curGPSFix.getAltitude() -> use current user's altitude, this sets the horizon as baseline
Math.sin(0.35)**distance -> that's the altitude in meters of 20 degrees at the current marker's distance
Math.sin(0.4)**(distance/(MixView.dataView.getRadius()
⚠️ **GitHub.com Fallback** ⚠️