Google Map dan CakePHP

Sunday, November 29th, 2009

Rujukan http://bakery.cakephp.org/articles/view/google-map-helper artikel oleh Abhimanyu Grover.

Download class GoogleMap di sini dan masukkan ke dalam folder vendors. Buka fail ini dan cari line untuk memasukkan Google API Key anda ($api_key)

Kemudian untuk menyenangkan penggunaan map ini nanti, kita akan membuat helper baru yang akan kita namakan map. Jadi buat satu fail baru di dalam folder app/views/helpers dan namakan ia map.php.

Paste code di bawah ke dalam fail map.php.

<?php
class MapHelper extends Helper
{
 
    var $helpers = array('Html');
 
    function displaymap($locations=false,$width=500,$height=500)
    {
        vendor('GoogleMapAPI.class');
        $map = new GoogleMapAPI('map');
        if($locations)
        foreach($locations as $location)
        {
            $map->addMarkerByAddress( $location['address'],strip_tags($location['title']), $location['title']);  //adds address to showup in Map
        }
        else
        {
            $map->setCenterCoords(109.050293,4.850154);   // if no locations are passed in function, then focus on Malaysia
            $map->setZoomLevel(5);
        }
 
        $map->setWidth($width);
        $map->setHeight($height);
        $map_content=$map->getHeaderJS().$map->getMapJS().$map->getMap();
        return $this->output($map_content);
    }
}
?>

Kemudian ini contoh penggunaan. Contoh yang saya berikan ini tidak melibatkan controller dan model. Saya menggunakan helper ini terus di dalam view untuk menjadikan tutorial ini lebih senang difahami.

<?php
// initialization of $my_locations array to show in map - you can do this in your controller.
$my_locations=array();
$my_locations[1]['address']='Kubang Kerian, 16150 Kota Bharu, Kelantan';
$my_locations[1]['title']='Mdpai house';
 
$my_locations[2]['address']='Selangor, Malaysia';
$my_locations[2]['title']='<b>Selangor</b>';
 
echo $map->displaymap($my_locations,500,500); ?>
<script type="text/javascript">onLoad();</script> 
?>

Di bawah adalah contoh yang sama tapi menggunakan view dan controller.

index.ctp

<?php echo $map->displaymap($my_locations,500,500); ?>
<script type="text/javascript">onLoad();</script>

maps_controller.php

<?php
class MapsController extends AppController
{
    var $name = 'Maps';
 
    //not using any database yet
    var $uses = array();
 
    function index(){
        $my_locations=array();
 
        $my_locations[1]['address']='Kubang Kerian, 16150 Kota Bharu, Kelantan';
        $my_locations[1]['title']='Mdpai house';
 
        $my_locations[2]['address']='Selangor, Malaysia';
        $my_locations[2]['title']='<b>Selangor</b>';
 
 
        $this->set('my_locations', $my_locations);
    }
 
}
 
?>

Untuk selanjutnya, sebagai contoh, anda boleh menyimpan maklumat koordinat di dalam pangkalan data dan dengan menggunakan model dan controller, memaparkan koordinat² tersebut di dalam google map tadi.

Selamat mencuba!

peta_resize

Share

Selamat mencuba! Jika anda mempunyai soalan mengenai tutorial ini, sila kemukakan di ruangan di bawah. Untuk soalan lain yang berkaitan dengan aturcara web atau jika anda mempunyai pandangan/idea untuk tutorial baru, e-mail saya di wanmohdfairuz@mckk9903.com atau kemukakan pandangan/soalan anda di dalam forum tutorialmelayu di http://www.tutorialmelayu.com/forum.
Daftar percuma di sini.

tagged under: ...

ABOUT THIS AUTHOR

System Engineer (Texas Instruments France), Masters in Electronics , Embedded System Engineering,
  1. December 2, 2009 at 10:09 am
    • December 2, 2009 at 5:15 pm

Leave a Reply

Tutorial php,mysql,javascript,css,html bahasa melayu