Pemrograman MapWindowsGIS menggunakan C#

Membuat Aplikasi GIS dengan MapWindowGIS di .Net

https://www.mapwindow.org/graphics/content/index/mapwingis.PNG
Via : https://www.mapwindow.org

Langkah pertama yang harus dilakukan adalah mengunduh versi terbaru komponen MapWindowGIS yang akan kita gunakan. Untuk mengunduhnya kita dapat mengakses ke alamat berikut :

https://www.mapwindow.org/download.php?file_name=https://svn.mapwindow.org/svnroot/InstallationProjects/4.7/Release/MapWinGIS47RC-x86-Setup.exe&show_details=2&dl=1

 

Setelah sukses mengunduhnya maka langkah selanjutnya adalah meng-install ActiveX tersebut ke komputer kita.

 

 

Setelah selesai langkah selanjutnya adalah menambahkan referensi komponen MapWindowGIS pada aplikasi yang akan kita buat. Berikut adalah langkah-langkahnya :

 

  1. Buat project baru di Visual Studio .Net 2005 dengan menggunakan ‘Windows Application’
  2. Setelah itu klik kanan pada ‘Toolbox Area’ lalu pilih ‘Choose Items …’
  3. Pada jendela ‘Choose Toolbox Items’ plih tab ‘COM Components’ kemudian pilih atau cari komponen ‘Map Control’ dari MapWinGIS.
  4. Setelah melakukan ketiga langkah diatas maka di bagian ‘Toolbox’ akan muncul icon Map Control

 

Setelah selesai melakukan semua langkah-langkah diatas kinilah saatnya kita mendesian tampilan jendela aplikasi kita lengkap dengan ‘Map Control’ componen dan tombol-tombol yang dibutuhkan. Sebagai bahan inspirasi gambar dibawah ini dapat dijadikan acuan (gambar berikut sama dengan yang ada di source aplikasi yang ada di attachment dokumen ini).

 

 

Setelah selasai langkah selanjutnya adalah mengisi code bagi komponen-komponen yang ada di jendela yang sudah kita rancang tadi.

 

Pada saat jendela di load tambahkan code dibawah ini :

 

private void frmMain_Load(object sender, EventArgs e)

{

1           loadGISData();

2           mapMain.CursorMode = MapWinGIS.tkCursorMode.cmNone;

}

 

dimana loadGISData adalah sebuah subrutin yang berfungsi untuk me-load data spatial yang akan kita tampilkan

 

1       // load gis data (shape file)

2       private void loadGISData()

3       {

4           int iCtrShape;

 

5           MapWinGIS.Shapefile sfBatas = new MapWinGIS.Shapefile();

6           sfBatas.Open(“C:/temp/OutputDir/BATAS.shp”, sfBatas.GlobalCallback);

7           mapMain.AddLayer(sfBatas, true);

 

8           for (iCtrShape = 0; iCtrShape < sfBatas.NumShapes; iCtrShape++)

9           {

10               showLabel(sfBatas.QuickPoint(iCtrShape, sfBatas.get_numPoints(iCtrShape) / 2).x, sfBatas.QuickPoint(iCtrShape, sfBatas.get_numPoints(0) / 2).y, iCtrShape);

11           }

12       }

 

pada line 12 terlihat subrutin ini memanggil subruting yang lain yaitu showLabel, dimana subrutin ini berfungsi untuk menampilkan label pada peta yang akan kita tampilkan.

Pada event klik tombol Zoom In tambahkan perintah berikut :

 

private void btnZoomIn_Click(object sender, EventArgs e)

{

1           mapMain.CursorMode = MapWinGIS.tkCursorMode.cmZoomIn;

}

 

Perintah pada line 1 digunakan untuk melakukan proses zoom in di peta kita.

 

Pada even klik tombol Zoom Out tambahkan perintah berikut :

 

private void btnZoomOut_Click(object sender, EventArgs e)

{

1           mapMain.CursorMode = MapWinGIS.tkCursorMode.cmZoomOut;

}

 

Perintah pada line 1 digunakan untuk melakukan proses zoom out di peta kita.

 

Pada even klik tombol Pan tambahkan perintah berikut :

 

private void btnPan_Click(object sender, EventArgs e)

{

1           mapMain.CursorMode = MapWinGIS.tkCursorMode.cmPan;

}

 

Perintah pada line 1 digunakan untuk menggeser-geser peta.

 

Pada even klik tombol Full Extent tambahkan perintah berikut :

 

private void btnFullExtent_Click(object sender, EventArgs e)

{

1           mapMain.ZoomToMaxExtents();

}

 

Perintah pada line 1 digunakan untuk menampilkan peta secara utuh.

Pada even klik tombol Fill Color tambahkan perintah berikut :

 

private void btnFillColor_Click(object sender, EventArgs e)

{

1           UInt32 iLineColor;

2           Single fLineWidth;

3           MapWinGIS.tkLineStipple lsLineStipple;

 

4           // display setting for line

5           mapMain.set_ShapeLayerDrawLine(0,true);

6           iLineColor = Convert.ToUInt32(Color.DarkBlue.ToArgb() & 0x00FFFFFF);

7           fLineWidth = Convert.ToSingle(2);

8           lsLineStipple = MapWinGIS.tkLineStipple.lsDashDotDash;

9           mapMain.set_ShapeLayerLineColor(0, iLineColor);

10           mapMain.set_ShapeLayerLineWidth(0, fLineWidth);

11           mapMain.set_ShapeLayerLineStipple(0, lsLineStipple);

}

 

Ketika tombol ‘Fill Color’ di klik maka yang akan terjadi adalah peta batas yang kita tampilkan akan berwarna biru dan putus-putus.

 

Pada even klik tombol Randering tambahkan perintah berikut :

 

private void btnClrSch_Click(object sender, EventArgs e)

{

1           int iCtrShape;

2           int iID;

3          int iNumOfShp;

 

4           iNumOfShp = 3;

 

5           // randering different shape of a layer

6           for (iCtrShape = 0; iCtrShape <= iNumOfShp; iCtrShape++)

7           {

8               iID = iCtrShape + 1;

9               if (iID == 1) mapMain.set_ShapeFillColor(0, iCtrShape, Convert.ToUInt32(Color.Red.ToArgb() & 0x00FFFFFF));

10               if (iID == 2) mapMain.set_ShapeFillColor(0, iCtrShape, Convert.ToUInt32(Color.Blue.ToArgb() & 0x00FFFFFF));

11               if (iID == 3) mapMain.set_ShapeFillColor(0, iCtrShape, Convert.ToUInt32(Color.Black.ToArgb() & 0x00FFFFFF));

12           }

13       }

 

Ketika tombol ini di klik maka peta akan menampilkan batas dalam 3 warna yang berbeda karen pada data atribut yang menyertai data keruangannya terdapat 3 kategori yang berbeda yaitu ‘1’,’2′ dan ‘3’.

 

Pada even klik tombol Clear Label tambahkan perintah berikut :

 

private void btnLabel_Click(object sender, EventArgs e)

{

1           mapMain.ClearLabels(0);

}

 

Perintah pada line 1 digunakan untuk menghilangkan label yang sebelumnya ada ketika aplikasi di panggil.

 

Setelah melakukan langkah-langkah diatas maka aplikasi GIS yang kita buat dengan menggunkakan komponen MapWindowGIS siap untuk kita compile.

 

 

Penutup

Belum semua fungsi dan kemampuan dari komponen MapWinGIS tereksplorasi secara optimal pada tulisan ini, karena tulisan ini bertujuan untuk mengenalkan apa MapWindow dan bagaimana cara menggunakannya di lingkungan .Net.

 

Salah satu keunggulan dari komponen ini adalah komponen ini bisa digunakan untuk aplikasi desktop dan web based. Tidak semua komponen memiliki kemampuan ini. Biasanya untuk aplikasi desktop dan web akan menggunakan engine yang berbeda.

 

Sebagai informasi source code yang disertakan dalam dokumen ini menggunakan Ms Visual Studio 2005. Selamat mencoba.

 

 

Source

  1. ESRI Shapefile Technical Description, https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
  2. Shapefile, https://en.wikipedia.org/wiki/Shapefile
  3. Getting Started with the MapWinGIS ActiveX Control, https://www.mapwindow.org/doc/UsingMapWinGIS.pdf
  4. MapWindowGIS, https://www.mapwindow.org/
  5. MapWinGIS Developer’s Guide, https://www.mapwindow.org/wiki/index.php/MapWinGIS_Developer%27s_Guide

Mengenal apa Itu Subnetting

https://www.stepwise.hk/npwiki/images/ip-subnetting-example.png

via : https://www.stepwise.hk

Banyak dari kita sering mendengar istilah subnetting dalam sebuah jaringan komputer tanpa mengerti apa itu subnetting dan apa tujuannya subnetting. Pada postingan ini menjelaskan secara singkat apa itu subnetting.

Subnetting adalah proses membagi atau memecah jaringan kedalam sebuah jaringan yang lebih kecil atau biasa disebut dengan subnet. Dengan subnetting kita dapat menentukan berapa banyak jumlah host yang ada dalam sebuah jaringan.

Salah satu fungsi subnetting adalah untuk efisiensi penggunaan bandwitdh jaringan, mengapa? Sebagai contoh dalam sebuah jaringan rumah hanya memiliki 5 komputer yang terhubung ke dalam jaringan, apabila menggunakan subnetting standrat maka paket data yang masuk ke dalam jaringan akan di broadcast kesemua alamat jaringan yang tersedia, meskipun alamat IP tersebut sebenarnya tidak ada maupun tidak aktif. Beberapa manfaat lain dari subnetting adalah:

  1. Mengurangi arus lalu lintas jaringan sehingga memperkecil kemungkinan tabrakan data.

  2. Optimasi kinerja jaringan.

  3. Penyederhanaan pengelolaan jaringan.

Biasanya penulisan alamat IP adalah 192.168.1.1 namun dalam beberapa kasus, penulisan IP dapat berupa 192.168.1.1/24. Sebenarnya apa arti dari /24? Angka /24 menunjukkan banyaknya bit pada subnet yang diunakan dengan kata lain IP 192.168.1.1 memiliki bilangan biner seperti 11111111.11111111.11111111.00000000 yang jika dikonversikan dalam angka akan menjadi 255.255.255.0. Konsep ini yang disebut dengan CIDR (Classless Inter-Domain Routing) yang diperkenalkan pertama kali tahun 1992 oleh IEFT. Berikut merupakan tabel subnet mask menurut CIDR:

Subnet Mask

Nilai CIDR

255.128.0.0

/9

255.192.0.0

/10

255.224.0.0

/11

255.240.0.0

/12

255.248.0.0

/13

255.252.0.0

/14

255.254.0.0

/15

255.255.0.0

/16

255.255.128.0

/17

255.255.192.0

/18

255.255.224.0

/19

255.255.240.0

/20

255.255.248.0

/21

255.255.252.0

/22

255.255.254.0

/23

255.255.255.0

/24

255.255.255.128

/25

255.255.255.192

/26

255.255.255.224

/27

255.255.255.240

/28

255.255.255.248

/29

255.255.255.252

/30