Startseite bisherige Projekte Tools/Snippets Bücherempfehlungen Publikationen Impressum Datenschutzerklärung

Map Tools

Für verschiedene Projekte benötigte ich eine Komponente zur Anzeige von Karten, sowohl für Java-Programme als auch für Webanwendungen. Darüber hinaus gab es Bedarf für einen Geocoder, der zumindest mit europäischen Postleitzahlen zurechtkommt.

Technik

Die Umsetzung erfolgte mittels Java. Zum Lesen von shape-Dateien und zur Projektion wurde die Bibliothek externer LinkOpenMap verwendet. Die Daten für den Geocoder wurden von externer Link GeoNames übernommen.


Screenshots

Einige Screenshots. Zum Vergrößern bitte anklicken.


Anzeige Deutscher Landkreise als Webanwendung

Anzeige von Krankheitsfällen in Europa

Anzeige von Krankheitsfällen in Deutschland

Beispiele

Eine einfache Karte zeichnen
ShapeFileDatasource source = new ShapeFileDatasource("test/naturalearth_DE", null);
		
MapViewPanel panel = new MapViewPanel(source);
panel.setSize(800, 800);
panel.centerToRegions();
		
JFrame frmTest = new JFrame();
frmTest.add(panel, BorderLayout.CENTER);
frmTest.setSize(800, 800);
frmTest.setLocationRelativeTo(null);
frmTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmTest.setVisible(true);

Eine Karte mit Hintergrundbild zeichnen
ShapeFileDatasource source = new ShapeFileDatasource("test/naturalearth_DE", null);
		
MapViewPanel panel = new MapViewPanel(source);
panel.setSize(800, 800);
panel.centerToRegions();
		
BackgroundImageSettings settings = new BackgroundImageSettings();
settings.setFileName("test/slice3_56.25_0_33.75_22.5.jpg");
settings.setUpperLeftLat(56.25);
settings.setUpperLeftLon(0);
settings.setLowerRightLat(33.37);
settings.setLowerRightLon(22.5);
panel.setBackgroundImageSettings(settings);
panel.setUseBackgroundImage(true);
		
JFrame frmTest = new JFrame();
frmTest.add(panel, BorderLayout.CENTER);
frmTest.setSize(800, 800);
frmTest.setLocationRelativeTo(null);
frmTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmTest.setVisible(true);
	
Eine eingefärbte Karte zeichnen
ShapeFileDatasource source = new ShapeFileDatasource("test/naturalearth_DE", null);
		
MapViewPanel panel = new MapViewPanel(source);
panel.setSize(800, 800);
panel.centerToRegions();
		
panel.setColorator(new Colorator() {
			
	@Override
	public Color getLineColor(Region r) {
		return Color.BLACK;
	}
			
	@Override
	public Color getBackgroundColor(Region r) {
		return new Color(r.hashCode());
	}
});
		
JFrame frmTest = new JFrame();
frmTest.add(panel, BorderLayout.CENTER);
frmTest.setSize(800, 800);
frmTest.setLocationRelativeTo(null);
frmTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmTest.setVisible(true);
Eine Karte mit Punkten und Labels zeichnen
ShapeFileDatasource source = new ShapeFileDatasource("test/naturalearth_DE", null);

MapViewPanel panel = new MapViewPanel(source);

List<Point> lPoints = new ArrayList<Point>();
lPoints.add(new SimplePoint(7.628694, -51.962944, "Münster", new Entity("Münster")));
lPoints.add(new SimplePoint(13.408056, -52.518611, "Berlin", new Entity("Berlin")));
panel.setPoints(lPoints);
	
panel.setLabelRenderer(new CircleLabelRenderer());

panel.setSize(800, 800);
panel.centerToRectangle(30, -0, 60, 20);

JFrame frmTest = new JFrame();
frmTest.add(panel, BorderLayout.CENTER);
frmTest.setSize(800, 800);
frmTest.setLocationRelativeTo(null);
frmTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmTest.setVisible(true);
	

Impressum - Datenschutzerklärung