Artikel getaggt mit ‘SharpMap’

März 13th, 2011

G#.Viewer – Kartenfunktionen (4)

Im letzten Teil der Serie beschäftigten wir uns mit dem Laden und Anzeigen von ESRI Shapefiles im G#.Viewer. Nun werden wir die einfach zugänglichen Funktionen zum Bedienen der Kartenansicht in unseren GIS-Viewer einbauen.

Im Namespace SharpMap.Forms.MapImage befindet sich ein Enumerator, der die verfügbaren Kartenfunktionalitäten auflistet.

Die wichtigsten sind:

  • Pan (Verschieben)
  • ZoomIn
  • ZoomOut
  • Query

Da diese Tools ja bereits „out-of-the-box“ mitgeliefert werden, brauchen wir nichts anderes tun, als an jedem LabelButton in unserem ToolStrip ein Click-Event zu erzeugen und den Wechsel des aktuellen Werkzeugs zu vollziehen. Was sich etwas umständlich anhört ist mit C# und SharpDevelop ganz simpel umzusetzen:

weiterlesen »

1 andere Person mag diesen Artikel.

Februar 16th, 2011

G#.Viewer – Laden und Anzeigen eines Shapefiles (3)

Im Dritten Teil dieses Artikel über den G#.Viewer möchte ich auf das Laden und Anzeigen eines Shapefiles mit Sharpmap in C# eingehen. Nun werden wir das erste Mal C# Code nicht nur über den Designer der IDE erstellen, sondern auch selbst Hand anlegen.

Zunächst einmal definiere ich einige Felder am Anfang der Klasse, die im Folgenden verwendet werden:

public partial class frmMain : Form
{
	// Map
	private SharpMap.Map map;
	private bool isMapOpen = false;
	private SharpMap.Layers.VectorLayer vLayer;
	public int width;
	public int height;

	//TreeView
	private TreeNode rootNode;

	public frmMain()
	{
		InitializeComponent();

		//Größe der Karte = Größe des TabPages tabMap
		width = tabMap.Width;
		height = tabMap.Height;
	}

weiterlesen »

Be the first to like.

Februar 16th, 2011

G#.Viewer – GUI – Layerübersicht und OpenFileDialog (2)

Erweiterung der GUI

Im letzten Artikel habe ich einen ersten Entwurf der GUI für den G#.Viewer mit der IDE SharpDevelop angefertigt. Diesen Entwurf möchte ich nun etwas erweitern. Was noch gefehlt hat war eine Übersicht der Layer, die in den Viewer geladen werden. In dieser Übersicht sollen die Layer verschiebbar sein – also die Reihenfolge geändert werden können, in der sie im Kartenbild überlagert werden und die Sichtbarkeit verändert werden können. Außerdem braucht man die eine Layerübersicht wenn man Funktionen auf einzelne Layer beziehen möchte – beispielsweise das Zoomen auf eine bestimmte Ebene oder etwa auch das Entfernen einer Ebene aus dem Viewer.

Deshalb holen wir uns jetzt noch ein TreeView-Control hinzu. Mit Hilfe eines zusätzlichen SplitContainers bauen wir den TreeView in unseren GIS-Viewer ein. Anschließend müssen die Eigenschaften bearbeitet werden, so dass aus dem TreeView auch eine Layerübersicht werden kann. Die weniger interessanten Eigenschaften des TreeViews habe ich ausgeblendet. Ansonsten sollten die fett markierten Eigenschaften wie folgt aussehen:

weiterlesen »

Be the first to like.

Dezember 29th, 2010

G#.Viewer – GUI (1)

G#.Viewer – ein eigener GIS-Datenviewer in C#

Mit der Open Source .NET-Bibliothek SharpMap kann man eigene einfache GIS-Anwendungen mit C# relativ schnell entwickeln. In den nun folgenden Artikeln werde ich die Entwicklung eines einfachen GIS-Viewers beschreiben. Das Projekt heisst „G#.Viewer“ und soll das können: Geodaten darstellen und abfragen.

Als Entwicklungsumgebung (IDE) empfehle ich das Werkzeug SharpDevelop. Auch dies ist Open Source und ist eine profunde Alternative zu Microsoft Visual Studio C# Express Edition oder zur Vollversion Microsoft Visual Studio. In diesen Artikeln werde ich die portable Version 3.2 von SharpDevelop nutzen.

Los geht’s

Zunächst sollten wir uns mit der aktuellen Version der SharpMap-Bibliothek eindecken. Unter „Downloads“ auf der Seite von SharpMap wird man schnell fündig. Am besten läd man sich den aktuellen Quellcode (ich benutze im folgenden das ChangeSet 81947). Es werden zwar auch bereits kompilierte DLLs zum Download angeboten – dabei fehlen jedoch einige nette Sachen wie der Namespace SharpMap.UI, in dem alle nützlichen GUI-Kartenwerkzeuge für Windows Forms zu finden sind (nämlich das MapImage-Control).

Deshalb ist das Motto: selber kompilieren! Ist ja auch mit SharpDevelop ohne weiteres möglich..

weiterlesen »

1 andere Person mag diesen Artikel.

Dezember 11th, 2010

SharpMap – Open Source GIS mit C#

Ich wollte schon immer eigene Applikationen schreiben. Dabei habe ich mir an verschiedenen Programmiersprachen die Zähne ausgebissen und habe es immer wieder verworfen. Einen guten Einstieg in die Programmierung fand ich dann durch Python: es war leicht zu erlernen und man konnte schnell etwas interessantes entwickeln.

Nachdem ich mit Python und Geoprocessing etwas Erfahrung gesammelt hatte und ein Praktikum bei ESRI Deutschland absolvierte, bei dem ich unter anderem ein bisschen in die Sprache C# schnuppern durfte, wollte ich C# weiter vertiefen.  Vor allem aber wollte ich eigentlich C# mit GIS verbinden. Python spielt sich ja meist auf der Konsole ab. Was ich wollte, war eine Benutzeroberfläche! Einen eigenen GIS-Datenviewer in C# – das war mein Ziel. Nur gab es da ein Problem: .NET-Bibliotheken oder Engines für GIS-Applikationen waren nur kommerziell verfügbar. Ich wollte aber doch nur spielen und lernen – also was tun?

Nach einer längeren Recherche fand ich dann SharpMap. SharpMap ist eine Mapping-Bibilothek für C#. Sie steht unter der LGPL-Lizenz und ist damit für kommerzielle, closed-source Produkte ohne Schwierigkeiten verwendbar – was manch einer als einen Nachteil sehen möchte. (Meine Meinung dazu ist eher pragmatisch: mit der LGPL kann man sowohl Open Source bleiben, als auch Closed Source. Das ist eine Möglichkeit mehr.)

Mit SharpMap ist es relativ leicht, eigene GIS-Applikationen (oder zumindest GIS-Datenviewer) in C# zu erstellen.  Und genau das werde ich in den nächsten Beiträgen etwas vorstellen.

2 Leute mögen diesen Artikel.

Tags: , , , ,