Google Map dan CakePHP
Sunday, November 29th, 2009Rujukan 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!
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.


bagus, tak terfikir aku ada Google Map Helper. Harus aku guna untuk next projek
tu la, dah la sng nak pakai, masuk address je.. takyah nak risau psl koordinat ll.