Tampilkan postingan dengan label api. Tampilkan semua postingan

Di sini kita akan belajar bagaimana membuat bentuk Rectangle (persegi) dari dua marker yang telah kita buat di google map, menyimpannya dalam database. Kita juga akan belajar bagaimana menampilkan semua daerah-daerah yang telah disimpan menggunakan jquery json, kemudian menampilkan informasi daerah yang telah ditandai menggunakan jendela informasi yang kita buat atau desain sendiri.


Membuat tabel datapeta di database

Berikut adalah struktur tabel datapeta di database MySQL

CREATE TABLE `datapeta` (
`nomor` int(5) NOT NULL auto_increment,
`judul` varchar(100) NOT NULL,
`deskripsi` tinytext NOT NULL,
`lat1` double NOT NULL,
`lng1` double NOT NULL,
`lat2` double NOT NULL,
`lng2` double NOT NULL,
`warna` varchar(10) NOT NULL,
PRIMARY KEY (`nomor`)
 

Meloading Google Maps Javascript API

<script type="text/javascript" 
src="http://maps.google.com/maps/api/js?sensor=false"></script>
 

Menampilkan peta di halaman web


var jakarta = new google.maps.LatLng(-6.237281, 106.332724);
var petaoption = {
zoom: 14,
center: jakarta,
mapTypeId: google.maps.MapTypeId.SATELLITE
};
peta = new google.maps.Map(document.getElementById("petaku"),petaoption);
 
Sebelumnya kita harus membuat objek <div id="petaku"></div> di web kita, yang berfungsi sebagi tempat google map diletakkan.

Mengambil data daerah yang sudah ditandai dari database, dengan format json

Berikut kode PHP untuk mengambil data dari database MySQL dan menampilkannya dalam format JSON
ambildata.php.
<?php
include "koneksi.php";
$akhir = $_GET['akhir'];
if($akhir==1){
$query = "SELECT * FROM datapeta ORDER BY nomor DESC LIMIT 1";
}else{
$query = "SELECT * FROM datapeta";
}
$data = mysql_query($query);

$json = '{"wilayah": {';
$json .= '"petak":[ ';
while($x = mysql_fetch_array($data)){
$json .= '{';
$json .= '"id":"'.$x['nomor'].'",
"judul":"'.htmlspecialchars($x['judul']).'",
"deskripsi":"'.htmlspecialchars($x['deskripsi']).'",
"x1":"'.$x['lat1'].'",
"y1":"'.$x['lng1'].'",
"x2":"'.$x['lat2'].'",
"y2":"'.$x['lng2'].'",
"warna":"'.$x['warna'].'"
},';
}
$json = substr($json,0,strlen($json)-1);
$json .= ']';

$json .= '}}';
echo $json;

?>

{"wilayah":
{"petak":[
{"id":"1",
"judul":"wilayah1",
"deskripsi":"ini adalah wilayah1",
"x1":"-6.23728179931641",
"y1":"106.332725524902",
"x2":"-6.24197483062744",
"y2":"106.340789794922",
"warna":"#FF0000"
},{
"id":"2",
"judul":"wilayah2",
"deskripsi":"Ini adalah wilayah 2",
"x1":"-6.22712850570679",
"y1":"106.345596313477",
"x2":"-6.22038793563843",
"y2":"106.353668212891",
"warna":"#FF0000"
}
]
}
}

Menampilkan di google map data daerah yang diambil dari database

Sekarang setelah kita mendapatkan data dengan format JSON, kita lihat bagaimana mengakses data JSON dan menampilkannya.

function ambildatabase(akhir){
if(akhir=="akhir"){
//url untuk mengambil data paling akhir
//dieksekusi jika barusan menyimpan data
url = "ambildata.php?akhir=1";
}else{
//url untuk mengambil data semuanya
url = "ambildata.php?akhir=0";
}
$.ajax({
url: url,
dataType: 'json',
cache: false,
success: function(msg){
for(i=0;i<msg.wilayah.petak.length;i++){
judulx[i] = msg.wilayah.petak[i].judul;
desx[i] = msg.wilayah.petak[i].deskripsi;
petak = new google.maps.Rectangle({
map: peta,
fillColor: msg.wilayah.petak[i].warna,
fillOpacity: 0.3,
strokeColor: msg.wilayah.petak[i].warna,
strokeWeight: 1
});
var bingkai = new google.maps.LatLngBounds(
new google.maps.LatLng(msg.wilayah.petak[i].x1, msg.wilayah.petak[i].y1),
new google.maps.LatLng(msg.wilayah.petak[i].x2, msg.wilayah.petak[i].y2)
);
petak.setBounds(bingkai);
setinfo(petak,i);
}
}
});
} 
 
 
Dari contoh di atas, untuk mengakses judul dari data JSON yang telah kita buat sebelumnya adalah msg.wilayah.petak[i].judul, untuk mengakses deskripsi adalah msg.wilayah.petak[i].deskripsi

Memberi event listener click pada google map

google.maps.event.addListener(peta,'click',function(event){
kasihtanda(event.latLng);
});
 
function kasihtanda(lokasi){
var gambar_tanda = 'tanda.png';
if(pertama == 0){
tanda1 = new google.maps.Marker({
position: lokasi,
map: peta,
icon: gambar_tanda
});
$("#x1").val(lokasi.lat());
$("#y1").val(lokasi.lng());
pertama = 1;
}else{
tanda2 = new google.maps.Marker({
position: lokasi,
map: peta,
icon: gambar_tanda
});
$("#x2").val(lokasi.lat());
$("#y2").val(lokasi.lng());
buat_persegi();
pertama = 0;
}

}

function buat_persegi(){
warnashape = $("#warnaku").val();

//Membuat objek persegi/rectangle
rectangle = new google.maps.Rectangle({
map: peta,
fillColor: warnashape, //Mengatur warna persegi
fillOpacity: 0.3, //Mengatur transaprasi persegi
strokeColor: warnashape, //Mengatur warna border persegi
strokeWeight: 1 //Mengatur ketebalan border
});
var latLngBounds = new google.maps.LatLngBounds(
tanda1.getPosition(),
tanda2.getPosition()
);
rectangle.setBounds(latLngBounds);

//Menghapus kedua tanda/marker yang dibuat sebelumnya
tanda1.setMap(null);
tanda2.setMap(null);
}
 

Menyimpan ke database

$(document).ready(function(){
$("#tombol_simpan").click(function(){
var wrna = $("#warnaku").val();
var x1 = $("#x1").val();
var y1 = $("#y1").val();
var x2 = $("#x2").val();
var y2 = $("#y2").val();
var judul = $("#judul").val();
var des = $("#deskripsi").val();
$("#loading").show();
$.ajax({
url: "simpanlokasi.php",
data: "x1="+x1+"&y1="+y1+"&x2="+x2+"&y2="+y2+"&judul="+judul+"&des="+des+"&wrn="+wrna,
cache: false,
success: function(msg){
alert(msg);
$("#loading").hide();
$("#x1").val("");
$("#y1").val("");
$("#x2").val("");
$("#y2").val("");
$("#judul").val("");
$("#deskripsi").val("");
ambildatabase('akhir');
rectangle.setMap(null);
}
});
});
$("#tutup").click(function(){
$("#jendelainfo").fadeOut();
});
});
 

Kode lengkapnya

Untuk kode lengkapnya langsung download source code
tutorial-dasa-koneksi-php-dan-mysql
 

Barangkali Anda pernah menjumpai suatu URL yang panjangnya minta ampun yang sulit untuk mengingatnya, padahal URL tersebut berisi artikel atau referensi yang menarik menurut Anda. Kira-kira bisa tidak kita menyingkat URL tersebut sehingga tidak menjadi terlalu panjang sehingga mudah diingat? Tentu bisa dong, dengan URL Shortener yang memanfaatkan API Google hal ini menjadi sangat mudah. Bahkan Anda bisa membuat sendiri script untuk penyingkat URL ini dengan API Google tersebut. Dengan begitu, Anda bisa menempatkan script tersebut untuk dipakai sendiri atau ditaruh di website sehingga bisa dimanfaatkan oleh pengunjung web.
Dalam artikel ini, akan saya paparkan bagaimana cara membuat script atau function di PHP untuk menyingkat URL tersebut yang memanfaatkan API Google.
 
Sebenarnya Anda bisa membuat scriptnya sendiri setelah ANda mempelajari panduan tentang URL Shortener dari API Google. Namun kalau Anda masih bingung, nanti akan saya sajikan script yang sudah jadi dan contoh implementasi atau pemanfaatannya.
Pertama, kita buat function terlebih dahulu untuk menyingkat URL nya. Berikut ini adalah functionnya:

<?php
function singkatURL($url)
{
$curlHandle = curl_init();
// melakukan request ke server Google API
curl_setopt($curlHandle, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, 0);
// menentukan tipe konten hasil request yg berupa JSON
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
// parameter yang berisi URL yang akan disingkat
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, '{"longUrl":"'.$url.'"}');
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
// lakukan request dengan POST method
curl_setopt($curlHandle, CURLOPT_POST, 1);

// baca data hasil request yg berupa JSON
$content = curl_exec($curlHandle);
curl_close($curlHandle);

// ekstrak data JSON untuk mendapatkan hasil URL yg disingkat
$data = json_decode($content);
return $data->id;
}
?>

Function singkatURL() di atas digunakan untuk menyingkat URL dengan memanfaatkan Google API. Parameter dari function ini adalah URL yang mau disingkat. Function singkatURL() nantinya langsung membuat request ke URL nya Google di https://www.googleapis.com/urlshortener/v1/url melalui POST request via CURL. Data hasil dari request tersebut berupa JSON yang contohnya berbentuk seperti ini:

{
"kind": "urlshortener#url",
"id": "http://goo.gl/fbsS",
"longUrl": "http://www.google.com/"
}

dimana “id” menyatakan URL hasil singkatannya, dan “longUrl” adalah URL aslinya. Dengan perintah

$data = json_decode($content);
return $data->id;
kita akan mendapatkan URL hasil singkatannya yg terdapat dalam “id”.
Nah… functionnya sudah jadi, selanjutnya kita lakukan test apakah function tersebut bisa berjalan. Misalkan kita akan menyingkat URL dari salah satu artikel yang ada di blog ini, yaitu “http://jagoan-php.blogspot.com/2011/11/script-php-untuk-transaksi-unik.html“. Cara menyingkat URL ini dengan function singkatURL() adalah sbb:
<?php
function singkatURL($url)
{
$curlHandle = curl_init();
// melakukan request ke server Google API
curl_setopt($curlHandle, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url');
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, 0);
// menentukan tipe konten hasil request yg berupa JSON
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
// parameter yang berisi URL yang akan disingkat
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, '{"longUrl":"'.$url.'"}');
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
// lakukan request dengan POST method
curl_setopt($curlHandle, CURLOPT_POST, 1);

// baca data hasil request yg berupa JSON
$content = curl_exec($curlHandle);
curl_close($curlHandle);

// ekstrak data JSON untuk mendapatkan hasil URL yg disingkat
$data = json_decode($content);
return $data->id;
}

echo singkatURL('http://jagoan-php.blogspot.com/2011/11/script-php-untuk-transaksi-unik.html');

?>

Jika script di atas dijalankan, maka akan muncul output URL hasil singkatannya adalah: http://goo.gl/To7Q8. Jika Anda buka URL singkatan tersebut di browser otomatis akan diarahkan ke URL aslinya. Anda bisa integrasikan function di atas dengan sebuah form untuk memasukkan URL yang akan disingkat. Menarik bukan???
Nah… selamat mencoba, semoga bermanfaat.

Related articel :

Diberdayakan oleh Blogger.