„SharpMap” változatai közötti eltérés

Innen: GIS Wiki
4. sor: 4. sor:
  
 
A SharpMap-et a következő linken érhetjük el: http://sharpmap.codeplex.com/ . Innen letölthető a legfrissebb verzió, dokumentáció, útmutató, mintapéldák és egyéb hasznos adatok.
 
A SharpMap-et a következő linken érhetjük el: http://sharpmap.codeplex.com/ . Innen letölthető a legfrissebb verzió, dokumentáció, útmutató, mintapéldák és egyéb hasznos adatok.
- A „downloads” fülre kattintva letölthetjük az alapcsomagot, de lehetőségünk van a csomag bővítményeit is letölteni.
+
 
- A „documentation” fül alatt találhatunk némi leírást illetve a ’How to..’ linken hozzáférhetünk példaprogramokhoz és néhány rövid leíráshoz.
+
- A „downloads” fülre kattintva letölthetjük az alapcsomagot, de lehetőségünk van a csomag bővítményeit is letölteni.
 +
 
 +
- A „documentation” fül alatt találhatunk némi leírást illetve a ’How to..’ linken hozzáférhetünk példaprogramokhoz és néhány rövid leíráshoz.
  
  
13. sor: 15. sor:
  
 
A fájlok kicsomagolásával véget is ért a telepítés. A csomagok használatához a VisualStudio projektben referenciaként fel kell venni a fejlesztéshez használni kívánt dll-eket.
 
A fájlok kicsomagolásával véget is ért a telepítés. A csomagok használatához a VisualStudio projektben referenciaként fel kell venni a fejlesztéshez használni kívánt dll-eket.
 +
  
 
'''SharpMap felvétele a referenciák közé:'''
 
'''SharpMap felvétele a referenciák közé:'''
  
- Indítsuk el a VisualStudio-t
+
- Indítsuk el a VisualStudio-t
- Hozzunk létre egy új projektet (pl. Windows Forms Application)
+
 
- SharpMap osztályok felvétele a referenciák közé:
+
- Hozzunk létre egy új projektet (pl. Windows Forms Application)
  - VisualStudio főmenüjében Project -> Add reference, itt a Browse fül alatt keressük meg azt a helyet, ahová a SharpMap zip fájlt kicsomagoltuk.
+
 
  - Válasszuk ki a számunkra szükséges dll fájlokat
+
- SharpMap osztályok felvétele a referenciák közé:
 +
 
 +
- VisualStudio főmenüjében Project -> Add reference, itt a Browse fül alatt keressük meg azt a helyet, ahová a SharpMap zip fájlt kicsomagoltuk.
 +
 
 +
- Válasszuk ki a számunkra szükséges dll fájlokat
 +
 
  
 
Így már importálhatóak az osztályok, ha a kódból szeretnénk példányosítani őket. Viszont a designer még nem tartalmazza azokat a vezérlőket, amelyekre szükségünk lehet a megjelenítésnél.
 
Így már importálhatóak az osztályok, ha a kódból szeretnénk példányosítani őket. Viszont a designer még nem tartalmazza azokat a vezérlőket, amelyekre szükségünk lehet a megjelenítésnél.
 +
  
 
'''Vezérlők hozzáadása a Toolbox-hoz:'''
 
'''Vezérlők hozzáadása a Toolbox-hoz:'''
  
- Adjunk hozzá egy új tabot a Toolbox-hoz. Toolbox -> jobb klikk -> Add Tab, az új tab neve legyen SharpMap
+
- Adjunk hozzá egy új tabot a Toolbox-hoz. Toolbox -> jobb klikk -> Add Tab, az új tab neve legyen SharpMap
- Ebbe a csoportba rakjuk bele a SharpMap vezérlőit a következő módon: Jobb klikk a csoportra -> Choose Items… -> dll fájlok kiválasztása (csak azokat a dll fájlokat tudjuk kiválasztani, amik tartalmaznak grafikus vezérlőket)
+
 
 +
- Ebbe a csoportba rakjuk bele a SharpMap vezérlőit a következő módon: Jobb klikk a csoportra -> Choose Items… -> dll fájlok kiválasztása (csak azokat a dll fájlokat tudjuk kiválasztani, amik tartalmaznak grafikus vezérlőket)
 +
 
  
 
Ezzel megvannak a legfontosabb kezdő lépések. A SharpMap importálható és elérhetőek a grafikus vezérlői is.
 
Ezzel megvannak a legfontosabb kezdő lépések. A SharpMap importálható és elérhetőek a grafikus vezérlői is.
 +
  
 
'''Megjegyzés:''' ''A SharpMap dll fájlok elérési útja megváltozik, akkor a VisualStudio nem fogja őket megtalálni. Ha ilyen történik, a Solution Explorer ablakban a projektünk Reference részét lenyitva kiválasztjuk a SharpMap adott állományát és a Properties-ben módosítjuk a path-ot a megváltozott elérési útra.''
 
'''Megjegyzés:''' ''A SharpMap dll fájlok elérési útja megváltozik, akkor a VisualStudio nem fogja őket megtalálni. Ha ilyen történik, a Solution Explorer ablakban a projektünk Reference részét lenyitva kiválasztjuk a SharpMap adott állományát és a Properties-ben módosítjuk a path-ot a megváltozott elérési útra.''
41. sor: 53. sor:
  
 
A Design ablakban levő Formra tegyünk rá egy MapBox-ot:
 
A Design ablakban levő Formra tegyünk rá egy MapBox-ot:
- Dupla klikk a Toolbox-ban lévő SharpMap tab MapBox controljára -> megjelenik a formon a mapBox1 nevű objektum
+
 
 +
- Dupla klikk a Toolbox-ban lévő SharpMap tab MapBox controljára -> megjelenik a formon a mapBox1 nevű objektum
  
 
A Property ablakban a BackColor tulajdonságot állítsuk fehérre.
 
A Property ablakban a BackColor tulajdonságot állítsuk fehérre.
47. sor: 60. sor:
 
Ez az egyszerű program egy shape fájl megjelenítését fogja végezni. Ehhez annyit kell tennünk, hogy a Form1 konstruktorában fogjuk elvégezni a megjelenítést. A következő C# kódot másoljuk be a konstruktorba:
 
Ez az egyszerű program egy shape fájl megjelenítését fogja végezni. Ehhez annyit kell tennünk, hogy a Form1 konstruktorában fogjuk elvégezni a megjelenítést. A következő C# kódot másoljuk be a konstruktorba:
 
    
 
    
   //--> create the countries layer from the shapefile
+
   //--> countriesLayer réteg elkészítése a shape fájlból
 
   SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer("megye");
 
   SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer("megye");
 
   countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(@"C:\Users\Bence\Documents\mo_shp\megye_region.shp", true);
 
   countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(@"C:\Users\Bence\Documents\mo_shp\megye_region.shp", true);
54. sor: 67. sor:
 
   this.Text = countriesLayer.LayerName;
 
   this.Text = countriesLayer.LayerName;
 
    
 
    
   //--> define the layer's style
+
   //--> réteg stílus paramétereinek beállítása
 
   countriesLayer.Style.Fill = Brushes.LightBlue;
 
   countriesLayer.Style.Fill = Brushes.LightBlue;
 
   countriesLayer.Style.EnableOutline = true;
 
   countriesLayer.Style.EnableOutline = true;
66. sor: 79. sor:
 
Hozzuk létre a countriesLayer nevű SharpMap.Layers objektumot, amely VectorLayer lesz, „megye” névvel. Ezenkívül meg kell adnunk a rétegünk forrását, amely sokféle lehet, jelen esetben egy shape fájl. Argumentumként adjuk meg a megjeleníteni kívánt fájl nevét és elérési útját. Végül adjuk hozzá a réteget a _sharMap.Layers kollekcióhoz.
 
Hozzuk létre a countriesLayer nevű SharpMap.Layers objektumot, amely VectorLayer lesz, „megye” névvel. Ezenkívül meg kell adnunk a rétegünk forrását, amely sokféle lehet, jelen esetben egy shape fájl. Argumentumként adjuk meg a megjeleníteni kívánt fájl nevét és elérési útját. Végül adjuk hozzá a réteget a _sharMap.Layers kollekcióhoz.
  
   //--> create the countries layer from the shapefile
+
   //--> countriesLayer réteg elkészítése a shape fájlból
 
   SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer("megye");
 
   SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer("megye");
 
   countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(@"C:\Users\Bence\Documents\mo_shp\megye_region.shp", true);
 
   countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(@"C:\Users\Bence\Documents\mo_shp\megye_region.shp", true);
79. sor: 92. sor:
 
Következő kódsorok a megjelenési stílusra vonatkozó paraméterek.
 
Következő kódsorok a megjelenési stílusra vonatkozó paraméterek.
  
   //--> define the layer's style
+
   //--> réteg stílus paramétereinek beállítása
 
   countriesLayer.Style.Fill = Brushes.LightBlue;
 
   countriesLayer.Style.Fill = Brushes.LightBlue;
 
   countriesLayer.Style.EnableOutline = true;
 
   countriesLayer.Style.EnableOutline = true;
111. sor: 124. sor:
 
     {
 
     {
 
         SharpMap.Map _sharpMap;
 
         SharpMap.Map _sharpMap;
         //--> set the zoom factor percentage
+
         //--> nagyítási érték beállítása
 
         const float ZOOM_FACTOR = 0.3f;
 
         const float ZOOM_FACTOR = 0.3f;
         //--> define the data name and source
+
         //--> a vector réteg neve és a forrásfájl elérési útja
 
         const string DATA_NAME = "megye";
 
         const string DATA_NAME = "megye";
 
         const string DATA_PATH = @"C:\Users\Bence\Documents\mo_shp\megye_region.shp";
 
         const string DATA_PATH = @"C:\Users\Bence\Documents\mo_shp\megye_region.shp";
121. sor: 134. sor:
 
             InitializeComponent();
 
             InitializeComponent();
 
   
 
   
             //--> initialize the map
+
             //--> térkép inicializálása
 
             _sharpMap = new SharpMap.Map(new Size(600, 300));
 
             _sharpMap = new SharpMap.Map(new Size(600, 300));
 
   
 
   
             //--> create the countries layer from the shapefile
+
             //--> countriesLayer réteg elkészítése a shape fájlból
 
             SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer(DATA_NAME);
 
             SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer(DATA_NAME);
 
             countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(DATA_PATH, true);
 
             countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(DATA_PATH, true);
 
   
 
   
 
             _sharpMap.Layers.Add(countriesLayer);
 
             _sharpMap.Layers.Add(countriesLayer);
             //--> define the layer's style
+
           
 +
             //--> réteg stílus paramétereinek beállítása
 
             countriesLayer.Style.Fill = Brushes.LightBlue;
 
             countriesLayer.Style.Fill = Brushes.LightBlue;
 
             countriesLayer.Style.EnableOutline = true;
 
             countriesLayer.Style.EnableOutline = true;
142. sor: 156. sor:
 
         private void RefreshMap()
 
         private void RefreshMap()
 
         {
 
         {
             //--> use SharpMap to generate the map image
+
             //--> Térkép generálása a SharpMap segítségével
 
             pictureBox1.Image = _sharpMap.GetMap();
 
             pictureBox1.Image = _sharpMap.GetMap();
            // MessageBox.Show(_sharpMap.Zoom.ToString());  //--> show the width of the map in decimal degrees
 
 
         }
 
         }
 
   
 
   
 
         private void ZoomIn_Click(object sender, EventArgs e)
 
         private void ZoomIn_Click(object sender, EventArgs e)
 
         {
 
         {
             //--> zoom in by changing the map width
+
             //--> Nagyítás a Zoom érték megváltoztatásával
 
             _sharpMap.Zoom -= _sharpMap.Zoom * ZOOM_FACTOR;
 
             _sharpMap.Zoom -= _sharpMap.Zoom * ZOOM_FACTOR;
 
             RefreshMap();
 
             RefreshMap();
156. sor: 169. sor:
 
         private void ZoomOut_Click(object sender, EventArgs e)
 
         private void ZoomOut_Click(object sender, EventArgs e)
 
         {
 
         {
             //--> zoom out by changing the map width
+
             //--> Kicsinyítés a Zoom érték megváltoztatásával
 
             _sharpMap.Zoom += _sharpMap.Zoom * ZOOM_FACTOR;
 
             _sharpMap.Zoom += _sharpMap.Zoom * ZOOM_FACTOR;
 
             RefreshMap();
 
             RefreshMap();
163. sor: 176. sor:
 
         private void ZoomFull_Click(object sender, EventArgs e)
 
         private void ZoomFull_Click(object sender, EventArgs e)
 
         {
 
         {
             //--> zoom to the full extent of the map
+
             //--> Eredit térképméret visszaállítása
 
             _sharpMap.ZoomToExtents();
 
             _sharpMap.ZoomToExtents();
 
             RefreshMap();
 
             RefreshMap();
170. sor: 183. sor:
 
         private void pictureBox1_Click(object sender, MouseEventArgs e)
 
         private void pictureBox1_Click(object sender, MouseEventArgs e)
 
         {
 
         {
             //--> convert mouse click point from image coordiantes to world coordinates
+
             //--> Kurzor koordinátájának konvertálása
 
             GeoAPI.Geometries.Coordinate p = _sharpMap.ImageToWorld(e.Location);
 
             GeoAPI.Geometries.Coordinate p = _sharpMap.ImageToWorld(e.Location);
             //--> recenter map
+
             //--> térkép pozicionálása
 
             _sharpMap.Center.X = p.X;
 
             _sharpMap.Center.X = p.X;
 
             _sharpMap.Center.Y = p.Y;
 
             _sharpMap.Center.Y = p.Y;

A lap 2016. május 23., 09:35-kori változata

Bevezetés

A SharpMap egy nyílt forráskódú térinformatikai programkönyvtár, amely alkalmas win32-es és webes alkalmazások fejlesztésére egyaránt. A SharpMap alkalmas arra, hogy VisualStudio-ban fejlesztett alkalmazásokban is felhasználhassuk. A könyvtár motorja C#-ban íródott és a .Net 4.0 keretrendszeren alapszik. Lehetővé teszi térképek megjelenítését, térbeli adatok és még sok más GIS adat kezelését.

A SharpMap-et a következő linken érhetjük el: http://sharpmap.codeplex.com/ . Innen letölthető a legfrissebb verzió, dokumentáció, útmutató, mintapéldák és egyéb hasznos adatok.

- A „downloads” fülre kattintva letölthetjük az alapcsomagot, de lehetőségünk van a csomag bővítményeit is letölteni.

- A „documentation” fül alatt találhatunk némi leírást illetve a ’How to..’ linken hozzáférhetünk példaprogramokhoz és néhány rövid leíráshoz.


Telepítés

A SharpMap Downloads fülére kattintva megjelennek a letölthető csomagok. Először töltsük le a SharpMap (Core+UI) nevű alapcsomagot. Érdemes lehet még letölteni a SharpMap.Extensions kiegészítő csomagot is, illetve webes alkalmazás vagy Oracle adatbázis használata esetén a SharpMap.Web és SharpMap.Data.Providers.OracleSpatial csomagokat. A letöltött .zip fájlok tartalmát tároljuk egy tetszőleges helyen.

A fájlok kicsomagolásával véget is ért a telepítés. A csomagok használatához a VisualStudio projektben referenciaként fel kell venni a fejlesztéshez használni kívánt dll-eket.


SharpMap felvétele a referenciák közé:

- Indítsuk el a VisualStudio-t

- Hozzunk létre egy új projektet (pl. Windows Forms Application)

- SharpMap osztályok felvétele a referenciák közé:

- VisualStudio főmenüjében Project -> Add reference, itt a Browse fül alatt keressük meg azt a helyet, ahová a SharpMap zip fájlt kicsomagoltuk.

- Válasszuk ki a számunkra szükséges dll fájlokat


Így már importálhatóak az osztályok, ha a kódból szeretnénk példányosítani őket. Viszont a designer még nem tartalmazza azokat a vezérlőket, amelyekre szükségünk lehet a megjelenítésnél.


Vezérlők hozzáadása a Toolbox-hoz:

- Adjunk hozzá egy új tabot a Toolbox-hoz. Toolbox -> jobb klikk -> Add Tab, az új tab neve legyen SharpMap

- Ebbe a csoportba rakjuk bele a SharpMap vezérlőit a következő módon: Jobb klikk a csoportra -> Choose Items… -> dll fájlok kiválasztása (csak azokat a dll fájlokat tudjuk kiválasztani, amik tartalmaznak grafikus vezérlőket)


Ezzel megvannak a legfontosabb kezdő lépések. A SharpMap importálható és elérhetőek a grafikus vezérlői is.


Megjegyzés: A SharpMap dll fájlok elérési útja megváltozik, akkor a VisualStudio nem fogja őket megtalálni. Ha ilyen történik, a Solution Explorer ablakban a projektünk Reference részét lenyitva kiválasztjuk a SharpMap adott állományát és a Properties-ben módosítjuk a path-ot a megváltozott elérési útra.


Egyszerű példaprogram

A shape fájlok megjelenítése minden GIS szoftver alapfunkciója. A SharpMap is biztosít egy osztályt ezek megjelenítésére. Ez a MapBox osztály, amelyet megtalálhatunk a SharpMap tabon, amelyet az előzőleg készítettünk. A megjelenítendő vektor térkép ebbe az osztályba fog legenerálódni és ez az osztály fogja megjeleníteni nekünk. Ennek a tartalma egyébként egy PictureBox-ban is megjeleníthető a az Image property használatával.

Első lépésként hozzunk létre egy ”Demo1” nevű új projektet.

A Design ablakban levő Formra tegyünk rá egy MapBox-ot:

- Dupla klikk a Toolbox-ban lévő SharpMap tab MapBox controljára -> megjelenik a formon a mapBox1 nevű objektum

A Property ablakban a BackColor tulajdonságot állítsuk fehérre.

Ez az egyszerű program egy shape fájl megjelenítését fogja végezni. Ehhez annyit kell tennünk, hogy a Form1 konstruktorában fogjuk elvégezni a megjelenítést. A következő C# kódot másoljuk be a konstruktorba:

 //--> countriesLayer réteg elkészítése a shape fájlból
 SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer("megye");
 countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(@"C:\Users\Bence\Documents\mo_shp\megye_region.shp", true);
 mapBox1.Map.Layers.Add(countriesLayer);
 
 this.Text = countriesLayer.LayerName;
 
 //--> réteg stílus paramétereinek beállítása
 countriesLayer.Style.Fill = Brushes.LightBlue;
 countriesLayer.Style.EnableOutline = true;
 countriesLayer.Style.Outline = Pens.DarkBlue;
 
 mapBox1.Map.ZoomToExtents();
 RefreshMap();

Nézzük meg mit jelentenek az egyes sorok a kódban.

Hozzuk létre a countriesLayer nevű SharpMap.Layers objektumot, amely VectorLayer lesz, „megye” névvel. Ezenkívül meg kell adnunk a rétegünk forrását, amely sokféle lehet, jelen esetben egy shape fájl. Argumentumként adjuk meg a megjeleníteni kívánt fájl nevét és elérési útját. Végül adjuk hozzá a réteget a _sharMap.Layers kollekcióhoz.

 //--> countriesLayer réteg elkészítése a shape fájlból
 SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer("megye");
 countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(@"C:\Users\Bence\Documents\mo_shp\megye_region.shp", true);
 mapBox1.Map.Layers.Add(countriesLayer);

Megjegyzés: Data providers paraméterlistáján az első paraméter egy string, ami a fájl elérhetőségeit tartalmazza. A második paraméter, ami boolean típusú arra utal, hogy van-e térbeli indexelés vagy sem. Ha False, akkor nincs, de ebben az esetben, nagy adatállományokra lassúvá válhat a megjelenítés. True esetében lesz térbeli indexelés, ami az első megjelenítéskor egy kis időt vesz igénybe, viszont a további megjelenítéskor gyorsabb lesz a folyamat.

A Form1 fejlécében is jelenítsük meg ezt a nevet

 this.Text = countriesLayer.LayerName;

Következő kódsorok a megjelenési stílusra vonatkozó paraméterek.

 //--> réteg stílus paramétereinek beállítása
 countriesLayer.Style.Fill = Brushes.LightBlue;
 countriesLayer.Style.EnableOutline = true;
 countriesLayer.Style.Outline = Pens.DarkBlue;

Végül be kell állítanunk a viewport sarkait a térképünk térbeli kiterjedésének megfelelő értékre. Erre külön eljárása van a mapBox1.Map-nek. A mapBox1 frissítésével jelenik meg a tényleges térkép.

 mapBox1.Map.ZoomToExtents();
 RefreshMap();


Egyszerű példaprogram: Térkép mozgatás

Ebben a programban az előző példát fejlesztjük tovább. A térképet kicsinyítjük, nagyítjuk és mozgatjuk. A mozgatásokat a Formra elhelyezett gombok segítségével fogjuk irányítani. Négy funkciót fogunk megvalósítani: Zoom in (nagyítás), Zoom out (kicsinyítés), Zoom Full (zoom out a teljes térképi tartalomra) és Pan (a kurzor klikkelés helyére teszi a viewport középpontját.

A program C# kódja:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Demo1
{
   public partial class Form1 : Form
   {
       SharpMap.Map _sharpMap;
       //--> nagyítási érték beállítása
       const float ZOOM_FACTOR = 0.3f;
       //--> a vector réteg neve és a forrásfájl elérési útja
       const string DATA_NAME = "megye";
       const string DATA_PATH = @"C:\Users\Bence\Documents\mo_shp\megye_region.shp";

       public Form1()
       {
           InitializeComponent();

           //--> térkép inicializálása
           _sharpMap = new SharpMap.Map(new Size(600, 300));

           //--> countriesLayer réteg elkészítése a shape fájlból
           SharpMap.Layers.VectorLayer countriesLayer = new SharpMap.Layers.VectorLayer(DATA_NAME);
           countriesLayer.DataSource = new SharpMap.Data.Providers.ShapeFile(DATA_PATH, true);

           _sharpMap.Layers.Add(countriesLayer);
           
           //--> réteg stílus paramétereinek beállítása
           countriesLayer.Style.Fill = Brushes.LightBlue;
           countriesLayer.Style.EnableOutline = true;
           countriesLayer.Style.Outline = Pens.DarkBlue;
           this.Text = countriesLayer.LayerName;

           _sharpMap.ZoomToExtents();
            
           RefreshMap();
       }

       private void RefreshMap()
       {
           //--> Térkép generálása a SharpMap segítségével
           pictureBox1.Image = _sharpMap.GetMap();
       }

       private void ZoomIn_Click(object sender, EventArgs e)
       {
           //--> Nagyítás a Zoom érték megváltoztatásával
           _sharpMap.Zoom -= _sharpMap.Zoom * ZOOM_FACTOR;
           RefreshMap();
       }

       private void ZoomOut_Click(object sender, EventArgs e)
       {
           //--> Kicsinyítés a Zoom érték megváltoztatásával
           _sharpMap.Zoom += _sharpMap.Zoom * ZOOM_FACTOR;
           RefreshMap();
       }

       private void ZoomFull_Click(object sender, EventArgs e)
       {
           //--> Eredit térképméret visszaállítása
           _sharpMap.ZoomToExtents();
           RefreshMap();
       }

       private void pictureBox1_Click(object sender, MouseEventArgs e)
       {
           //--> Kurzor koordinátájának konvertálása
           GeoAPI.Geometries.Coordinate p = _sharpMap.ImageToWorld(e.Location);
           //--> térkép pozicionálása
           _sharpMap.Center.X = p.X;
           _sharpMap.Center.Y = p.Y;
           RefreshMap();
       }
   }
}

A Zoom In, Zoom out, Zoom Full feliratú gombokra klikkelve tudjuk változtatni a kép nagyítását. Ezek eseménykezelőjébe kerültek bele a zoom műveletek. Például a Zoom In gombra klikkelve azonnal megtörténik a nagyítás, mégpedig úgy, hogy a kép közepe változatlanul a viewport közepére esik. A kurzor bármely pozíciójában történő klikkelés a viewport elmozdulását jelenti úgy, hogy a klikkelés térképi helye lesz a viewport közepe.


Hivatkozások

SharpMap hivatalos honlap: http://sharpmap.codeplex.com/

SharpMap további Tutorialok: http://sharpmap.codeplex.com/wikipage?title=SharpMap%20Tutorial&referringTitle=Documentation

SharpMap leírás további példaprogramokkal (VisualBasic, C#): http://tarsadalominformatika.elte.hu/tananyagok/opensourcewin/index.html

SharpMap Tutorial (C#): http://spatialhorizons.com/2007/10/14/using-sharpmap-1/

SharpMap Tutorial (ASP.NET 2.0): http://www.codeproject.com/Articles/12457/Creating-an-Interactive-Map-in-ASP-NET-Using-S