Materi GIS AKAKOM Yogyakarta
-
Upload
information-and-technology -
Category
Education
-
view
60 -
download
0
Transcript of Materi GIS AKAKOM Yogyakarta
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 1
PHP for grafis
Kegiatan
Mengerjakan dikelas tugas rumah sbb
a. Terdapat titik kota Yogya terletak di (dalam SKG) 110.50 BT dam 7.00 LSTentukan koordinat di layar bila resolusi 400x300, Bila batas kiri=100 BT , batas kanan =111 BT, Batas atas =6 LS , batas bawah =8 LS
b. T erdapat titik P di layar dengan koordinat (100,150).Berapa koordinat globalnya ? Bila batas dan resolusi seperti diatas
Menjelaskan materi transformasi koordinat global ke layat dsbl.
Mendemokan contog grafis di PHP
materi
Scipt PHP untuk grafis
<?
header("Content-Type:image/jpeg"); identifikasi tipe grafis
$cendelo=imagecreate(800,600); membuat jendela untuk grafis dengan
ukuran 800x600 pixel (dapat datur
tersendiri)
imagecoloralocate($cendelo,0,0,225);membuat warna latar belakang
(dapat diatur tersendiri)
$w=imagecoloralocate($g,255,0,0); membuat warna obyek grafis
………
….. bentuk geometri/obyek ditulis disini
……
imageJPEG($cendelo); menampilkan obyek ke monitor
?>
Geometri Dasar dengan PHP
Pengaturan warna
id_warna=imagecolorallocate(id_grafis,R,G,B);
R Red : 0 – 255
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 2
G Green : 0 – 255
B Blue : 0 – 255
Garis
imageline(id_grafis,xo,yo,x1,y1,id_warna);
xo,yo : koordinat awal garis
x1,y1 : koordinat akhir garis
Kotak
imagerectangle(id_grafis,x,y,lebar,tinggi,id_warna);
imagefilledrectangle(id_grafis,x,y,lebar,tinggi,id_warna);
imagefilledrectangle(id_grafis,x,y,lebar,tinggi,id_warna);
Lingkarang / Ellipse
imageellipse(id_grafis,x,y,lebar,tinggi,id_warna);
imagefilledellipse(id_grafis,x,y,lebar,tinggi,id_warna); di blok
x,y
lebar
tinggi
x,y
lebar
tinggi
Id_warna
(warna blok)
Id_warna
(warna garis)
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 3
Lingkaran / Ellipse
imagearc(id_grafis,x,y,lebar,tinggi,sudut_awal,sudut_akhir,id_warna);
Poligon
$var=array(x0,y0,x1,y1,x2,y2,……)
Atau
$var[0]=x0
$var[1]=y0
$var[2]=x1
$var[3]=y1
……
imagepolygon(id_grafis,$var,jumlah_titik,id_warna);
imagefilledpolygon(id_grafis,$var,jumlah_titik,id_warna); dg blok
lebar
tinggi
(x,y) : titik pusat
lebar
tinggi
(x,y) : titik pusat
Sudut_awal(derajat)
Sudut_akhir(derajat)
Sudut 0 (nol) derajat
X0,y0
X1,y1
X2,y2 X3,y3
X4,y4
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 4
dari contoh poligon ini jumlah_titik=5
-----------------------mpun nggih---------------------
Program Database untuk SIG –(sederhana)
Database
Database : gis2011
Tabel : obyek
Tabel : kabupaten
Tabel : obyek
Script menampilkan obyek statis (ukuran/warna tidak berubah)
Sambung.php
<?php
mysql_connect(localhost,'root','root');
mysql_select_db(gis2011);
?>
Obyek .php
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 5
<?php
<?php
include "sambung.php";
$iki=mysql_query("select x,y from obyek");
$i=1;
while($iki1=mysql_fetch_array($iki))
{
$x_global[$i]=$iki1[x];
$y_global[$i]=$iki1[y];
$i++;
}
$jum_obyek=$i-1;
//-----------------transformasi ke koordinat layar
//batas koordinat global
$bkiri_global=106;$bkanan_global=110;
$batas_global=7;$bbawah_global=8;
//resolusi atau batas layar
$xmax=800;
$ymax=600;
$dx_global=$bkanan_global-$bkiri_global;
$dy_global=$bbawah_global-$batas_global;
//proses transformasi ke kordinat layar
for($k=1;$k<=$jum_obyek;$k++)
{
$x_layar[$k]=($x_global[$k]-$bkiri_global)/$dx_global*$xmax;
$y_layar[$k]=($y_global[$k]-$batas_global)/$dy_global*$ymax;
}
header("Content-Type:image/jpeg");
$wilayah=imagecreate(600,400);
$latar=imagecolorallocate($wilayah,100,100,100);
$merah=imagecolorallocate($wilayah,255,0,0);
for($k=1;$k<=$jum_obyek;$k++)
{
imagefilledrectangle($wilayah,$x_layar[$k]-20,$y_layar[$k]-20,
$x_layar[$k]+20,$y_layar[$k]+20,$merah);
}
imagejpeg($wilayah);
?>
Output
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 6
Script menampilkan obyek DINAMIS(ukuran berubah sesuai data)
Script diatas ditambahkan sbb
<?php include "sambung.php"; $iki=mysql_query("select x,y ,luas from obyek"); $i=1; while($iki1=mysql_fetch_array($iki)) { $x_global[$i]=$iki1[x]; $y_global[$i]=$iki1[y]; $ombo[$i]=$iki1[luas]; $i++; } $jum_obyek=$i-1; //-----------------transformasi ke koordinat layar //batas koordinat global $bkiri_global=106;$bkanan_global=110; $batas_global=7;$bbawah_global=8; //resolusi atau batas layar $xmax=800; $ymax=600; $dx_global=$bkanan_global-$bkiri_global; $dy_global=$bbawah_global-$batas_global;
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 7
//proses transformasi ke kordinat layar for($k=1;$k<=$jum_obyek;$k++) { $x_layar[$k]=($x_global[$k]-$bkiri_global)/$dx_global*$xmax; $y_layar[$k]=($y_global[$k]-$batas_global)/$dy_global*$ymax; } header("Content-Type:image/jpeg"); $wilayah=imagecreate(600,400); $latar=imagecolorallocate($wilayah,100,100,100); $merah=imagecolorallocate($wilayah,255,0,0); for($k=1;$k<=$jum_obyek;$k++) { //menentukan ukuran atas dasar luas obyek if($ombo[$k]>75) $ls=30; else $ls=15; imagefilledrectangle($wilayah,$x_layar[$k]-$ls,$y_layar[$k]-$ls, $x_layar[$k]+$ls,$y_layar[$k]+$ls,$merah); } imagejpeg($wilayah) ?>
Output
-------------------------------
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 8
Batas Wilayah & warna blok
Database untuk obyek dan batas wilayah
Database : gis2011
Tabel : obyek
Tabel : batas
Tabel : kabupaten
Tabel : obyek
Script menampilkan batas wilayah dan nama kabupaten
Sambung.php
<?php
mysql_connect(localhost,'root','root');
mysql_select_db(gis2011);
?>
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 9
Wilayah.php
<?php
//mencipakan daerah grafis
header("Content-Type:image/jpeg");
$wilayah=imagecreate(600,400);
$latar=imagecolorallocate($wilayah,200,200,200); //warna latar
$merah=imagecolorallocate($wilayah,255,0,0); //warna merah
$kuning=imagecolorallocate($wilayah,255,255,0); //warna kuning
$biru=imagecolorallocate($wilayah,0,0,255); //warna kuning
//batas koordinat global-- bisa dibuat auto dengan mix max dari tabel
$bKiri_global=104;$bKanan_global=110;
$bAtas_global=7;$bBawah_global=8.5;
//resolusi atau batas layar
$xmax=800;
$ymax=600;
//hitung lebar dan tinggi peta global
$dx_global=$bKanan_global-$bKiri_global;
$dy_global=$bBawah_global-$bAtas_global;
//script untuk mengambil data kabupaten
include "sambung.php";
$kab=mysql_query("select kodekab,jum_penduduk from kabupaten");
while($kab_1=mysql_fetch_array($kab))
{
$kokab=$kab_1[kodekab];
$jumpen=$kab_1[jum_penduduk];
//ambil batas per kode kabupatehn
$i=0;
$batas=mysql_query("select x,y from batas where kodekab='$kokab'");
while ($batas_1=mysql_fetch_array($batas))
{
$x_global=$batas_1[x];
$y_global=$batas_1[y];
//transformasi ke koordinat layar
$x_lyr[$i]=($x_global-$bKiri_global)/$dx_global*$xmax;
$y_lyr[$i]=($y_global-$bAtas_global)/$dy_global*$ymax;
$i++;
}
$jum_data=$i*2;
//transformasi koordinat layar (array) ke array untuk polygon
$t=0;
for($k=0;$k<$jum_data;$k++)
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 10
{
if($k%2==0)
$titik[$k]=$x_lyr[$t];
else
{
$titik[$k]=$y_lyr[$t];
$t++;
}
}
$jumlah_titik=$t;
//pembedaan blok atas dasar jumlah penduduka
if($jumpen>5)
$warna=$merah;
else
$warna=$kuning;
//membuat x dan y rata2 agar nama kabupatan ada di tengah
$xx0;$yy=0;
for($n=0;$n<=$jumlah_titik;$n++)
{
$xx+=$x_lyr[$n];
$yy+=$y_lyr[$n];
}
//gambar poligon
$x_tulis=$xx/$jumlah_titik;
$y_tulis=$yy/$jumlah_titik;
imagefilledpolygon($wilayah,$titik,$jumlah_titik,$warna);
}//end while
imagejpeg($wilayah);
?>
Output
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 11
Script menampilkan TEKS pada didalam wilayah
Wilayah.php
……… sama dengan sebelumnya
$kab=mysql_query("select kodekab,namakab,jum_penduduk from kabupaten");
while($kab_1=mysql_fetch_array($kab))
{
$kokab=$kab_1[kodekab];
$nakab=$kab_1[namakab]; $jumpen=$kab_1[jum_penduduk];
//ambil batas per kode kabupatehn
$i=0;
$batas=mysql_query("select x,y from batas where kodekab='$kokab'");
while ($batas_1=mysql_fetch_array($batas))
{
$x_global=$batas_1[x];
$y_global=$batas_1[y];
//transformasi ke koordinat layar
$x_lyr[$i]=($x_global-$bKiri_global)/$dx_global*$xmax;
$y_lyr[$i]=($y_global-$bAtas_global)/$dy_global*$ymax;
$i++;
}
$jum_data=$i*2;
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 12
//transformasi koordinat layar (array) ke array untuk polygon
$t=0;
for($k=0;$k<$jum_data;$k++)
{
if($k%2==0)
$titik[$k]=$x_lyr[$t];
else
{
$titik[$k]=$y_lyr[$t];
$t++;
}
}
$jumlah_titik=$t;
if($jumpen>5)
$warna=$merah;
else
$warna=$kuning;
//gambar poligon
imagefilledpolygon($wilayah,$titik,$jumlah_titik,$warna);
//membuat x dan y rata2 agar nama kabupatan ada di tengah
$xx0;$yy=0;
for($n=0;$n<=$jumlah_titik;$n++)
{
$xx+=$x_lyr[$n];
$yy+=$y_lyr[$n];
}
$x_tulis=$xx/$jumlah_titik;
$y_tulis=$yy/$jumlah_titik;
imagestring($wilayah,5,$x_tulis,$y_tulis,$nakab ,$biru);
}
imagejpeg($wilayah);
?>
Output
STMIK AKAKOM
Pemrograman Sistem Informasi Geografi – berbasis WEB oleh M Guntara Hal 13
SIG Lengkap Untuk membentuk SIG lengkap maka wilayah.php dan obyek.php digabungkan , sehingga akan menghasilkan
output wilayah dan obyek2-nya
---------------------- wis semene wae yo mugo kasembadan panjangkamu -----------------------