-
Notifications
You must be signed in to change notification settings - Fork 1
Description
It would be very useful to have text able to be displayed via the file or streaming input. There would need to be JSON descriptors for the text and text box characteristics.
-
define a bounding box for text - where on the screen should upper left corner/lower right corner be?
-
color of box (optional)
-
transparency percentage (optional - if there is a color, default is "100% opaque")
-
corner rounding (optional: rounded with value of rounding - default 0)
-
border of box (optional: thickness in ... pixels? points?)
-
border color (optional - default is none and if there is no color then no border options apply)
-
border thickness (optional: default is .. well, pick a good default - up to you)
-
border transparency percentage (optional - default is 100% opaque)
-
scrolling direction (optional: left to right, right to left, top to bottom, bottom to top) - note that if there is no scrolling
-
scrolling speed (optional: 1-10 default is 3 - those speeds are not defined but will be what "looks right")
-
lifespan of text (optional: seconds. How long does this text box/text remain on the screen?)
-
text content (optional: can be null, in which case any text block that has the same bounding box points will be deleted)
-
text should have the ability to have bold, italic, color, and underline embedded in the text strings
-
text font size (optional with reasonable defaults?)
-
text font name (optional with reasonable default - for now, Quad9Sans)
-
text transparency percentage (optional)
-
text should have the ability to include URLs that can be clicked, either opening new windows or linking out in the current window
-
text pointer (optional: latitude, longitude of a line that goes from the text block to the lat/lon on the globe (moves as globe spins) - line does NOT appear if the lat/lon is not within the zoom view of the globe +/- longitude offset (see below))
-
text pointer line color (optional)
-
text pointer line transparency (optional)
-
text pointer line thickness (optional)
-
text pointer arrow (optional: yes, no, or size?)
-
text pointer longitude offset visibility degrees - (optional - only show items which are within this many degrees +/- of the current center-of-view. Example: if this was set to 30, and the globe was showing London (0 degrees longitude), then only text pointer items out to 30 degrees to the east of London and 30 degrees west of london would be shown. Even though Iceland might be visible on the view, no text boxes would be visible for that feature (if it had them) because it is at 64 degrees East.
-
text pointer visibility stack shifting (this thought is incomplete. If we have, for example, a list of nations that "lights up" with lines going to each showing a number, for example, we probably do not want to see the text blocks for nations that are not on the map, nor do we want to have "empty" space taken up by ghosts of nations that aren't shown. We would want to have the text blocks "shift up" when an item is no longer necessary to show. However, this violates the concept of defining a text block with two points on the screen because those two points won't be consistent if we shift things around based on how the globe spins. ideas welcome here.)
If the screen is very crowded, it may cause text to be overprinted on the globe, or overprinted on other text areas. The user has to figure this out themselves and make it look less terrible.
Multiple text items can be displayed at once.