FTP Uploaded With Delphi

https://winscp.net/eng/images/og_logo_240x240.jpg

via https://winscp.net

Teman, Kita telah banyak kita ketahui program-program FTP Upload seperti Filezila, WinSCP2 dll. Tapi apa salahnya kalau kita membuat sendiri program Upload file ke FTP server. Jika kita akan membuat program aplikasi misalnya video Streaming dimana file image akan dikirim ke server secara terus menerus berdasarkan periode waktu tertentu. Tentunya kita memerlukan program yang dapat mengupload file tersebut secara otomatis. Baiklah tanpa panjang lebar lagi, dimulai dengan mempersiapkan komponen Delphi untuk upload file. Komponen tersebut adalah FTP2ActiveX yang dapat di download di https://www.chilkatsoft.com/. Baiklah setelah mendapatkan file tersebut install file ke sistem windows kemudian install ke delphi.

Adapun cara menginstall ke delphi adalah sebagai berikut:

  1. klik Componen → Import ActiveX Control
  2. Pada window activeX pilih chilkat Ftp2 → klik install
  3. Pada window Install klik OK → rebuild klik yes → OK Seteleh terinstall, maka pada ActiveX akan muncul componen ChilkatFTP2

Setelah semuanya siap. Kita tinggal menyiapkan Form yang dari Delphi7. Rancangan formnya sederhana.

Berikut ini program yang digunakan untuk upload file.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
ftp: TChilkatFtp2;
success: Integer;
localFilename: String;
remoteFilename: String;
begin
ftp := TChilkatFtp2.Create(Self);
success := ftp.UnlockComponent(‘Anything for 30-day trial’);
if (success <> 1) then
begin
ShowMessage(ftp.LastErrorText);
end;
ftp.Hostname := ‘aegis’; //Server Yang digunakan
ftp.Username := ‘dayat’;
ftp.Password := ‘daysdk63’;
success := ftp.Connect();
if (success <> 1) then
begin
ShowMessage(ftp.LastErrorText);
end;
success := ftp.ChangeRemoteDir(‘/public_html’); //derectori upload
if (success <> 1) then
begin
ShowMessage(ftp.LastErrorText);
end;
localFilename := ‘F:\project\WebcamDelphi\foto.gif’; //direktori file yang akan diupload
remoteFilename := ‘foto.gif’;
success := ftp.PutFile(localFilename,remoteFilename);
if (success <> 1) then
begin
ShowMessage(ftp.LastErrorText);
end;
ftp.Disconnect();
ShowMessage(‘File Uploaded!’);
end;

Jalankan progam. Jika proses upload sukses akan muncul pesan “File Uploaded”

Nah itulah program upload ke FTP server.

Source : https://www.example-code.com

https://www.chilkatsoft.com/

https://www.ilmukomputer.com/

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