package de.fhpotsdam.unfolding.examples.marker;
import processing.core.PApplet;
import de.fhpotsdam.unfolding.UnfoldingMap;
import de.fhpotsdam.unfolding.geo.Location;
import de.fhpotsdam.unfolding.utils.MapUtils;
import de.fhpotsdam.unfolding.utils.ScreenPosition;
/**
* Displays two dots, by simply updating their position based on their locations. Look into Unfolding's Marker
* mechanism, if you want to use interactivity, load data or do anything else more than simply showing dots.
*
* <p>
* Note, that this simple mechanism only works for full-sized maps (i.e. the markers are shown off-map, too). For usage
* of MarkerManager look into other examples, e.g. {@link SimpleMarkerManagerApp}.
* </p>
*/
@SuppressWarnings("serial")
public class SimpleNonMarkerApp extends PApplet {
UnfoldingMap map;
Location locationBerlin = new Location(52.5f, 13.4f);
Location locationLondon = new Location(51.5f, 0f);
public void setup() {
size(400, 400, OPENGL);
noStroke();
map = new UnfoldingMap(this);
map.setTweening(true);
map.zoomToLevel(3);
map.panTo(new Location(40f, 8f));
MapUtils.createDefaultEventDispatcher(this, map);
}
public void draw() {
background(0);
map.draw();
// Draws locations on screen positions according to their geo-locations.
// Fixed-size element
ScreenPosition xyBerlin = map.getScreenPosition(locationBerlin);
fill(0, 200, 0, 100);
ellipse(xyBerlin.x, xyBerlin.y, 20, 20);
// Zoom dependent element size
ScreenPosition xyLondon = map.getScreenPosition(locationLondon);
fill(200, 0, 0, 100);
float s = map.getZoom();
ellipse(xyLondon.x, xyLondon.y, s, s);
}
}