DBの用意が出来たので、controllerから作っていきます。mysqlからselectする際に時差を計算してあげます。
WorldwidesController.php
<?php namespace App\Controller; use Cake\ORM\TableRegistry; class WorldwidesController extends AppController { public function initialize() { parent::initialize(); $this->Londons = TableRegistry::get('londons'); $this->Moscows = TableRegistry::get('moscows'); $this->Cairos = TableRegistry::get('cairos'); $this->Capetowns = TableRegistry::get('capetowns'); $this->Beijings = TableRegistry::get('beijings'); $this->Jakartas = TableRegistry::get('jakartas'); $this->Marunouchis = TableRegistry::get('marunouchis'); $this->Sydneys = TableRegistry::get('sydneys'); $this->Losangeles = TableRegistry::get('losangeles'); $this->Newyorks = TableRegistry::get('newyorks'); $this->Limas = TableRegistry::get('limas'); $this->Saopaulos = TableRegistry::get('saopaulos'); } public function index() { $this->viewBuilder()->layout('my_layout'); $now1 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-9hour')); $param1 = array( 'conditions' => array( 'forecast >' => $now1, ), ); $londons = $this->Londons->find('all', $param1)->limit(8); $now2 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-6hour')); $param2 = array( 'conditions' => array( 'forecast >' => $now2, ), ); $moscows = $this->Moscows->find('all', $param2)->limit(8); $now3 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-8hour')); $param3 = array( 'conditions' => array( 'forecast >' => $now3, ), ); $cairos = $this->Cairos->find('all', $param3)->limit(8); $capetowns = $this->Capetowns->find('all', $param3)->limit(8); $now4 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-1hour')); $param4 = array( 'conditions' => array( 'forecast >' => $now4, ), ); $beijings = $this->Beijings->find('all', $param4)->limit(8); $now5 = date("Y-m-d H:i:s"); $param5 = array( 'conditions' => array( 'forecast >' => $now5, ), ); $marunouchis = $this->Marunouchis->find('all', $param5)->limit(8); $now6 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-2hour')); $param6 = array( 'conditions' => array( 'forecast >' => $now6, ), ); $jakartas = $this->Jakartas->find('all', $param6)->limit(8); $now7 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '+3hour')); $param7 = array( 'conditions' => array( 'forecast >' => $now7, ), ); $sydneys = $this->Sydneys->find('all', $param7)->limit(8); $now8 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-16hour')); $param8 = array( 'conditions' => array( 'forecast >' => $now8, ), ); $losangeles = $this->Losangeles->find('all', $param8)->limit(8); $now9 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-13hour')); $param9 = array( 'conditions' => array( 'forecast >' => $now9, ), ); $newyorks = $this->Newyorks->find('all', $param9)->limit(8); $now10 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-14hour')); $param10 = array( 'conditions' => array( 'forecast >' => $now10, ), ); $limas = $this->Limas->find('all', $param10)->limit(8); $now11 = date("Y-m-d H:i:s", strtotime(date(DATE_RFC2822) . '-12hour')); $param11 = array( 'conditions' => array( 'forecast >' => $now11, ), ); $saopaulos = $this->Saopaulos->find('all', $param11)->limit(8); $this->set(compact('londons')); $this->set(compact('moscows')); $this->set(compact('cairos')); $this->set(compact('capetowns')); $this->set(compact('beijings')); $this->set(compact('marunouchis')); $this->set(compact('jakartas')); $this->set(compact('sydneys')); $this->set(compact('losangeles')); $this->set(compact('newyorks')); $this->set(compact('limas')); $this->set(compact('saopaulos')); } } ?>
緯度経度を追記します。
var markerData = [ { name: 'ロンドン', lat: 51.507351, lng: -0.127758, icon: icon[0] }, { name: 'モスクワ', lat: 55.755826, lng: 37.6173, icon: icon[1] }, { name: 'カイロ', lat: 30.0444196, lng: 31.2357116, icon: icon[2] }, { name: 'ケープタウン', lat: -33.924869, lng: 18.424055, icon: icon[3] }, { name: '北京', lat: 39.9042, lng: 116.407396, icon: icon[4] }, { name: '東京', lat: 35.681167, lng: 139.767052, icon: icon[5] }, { name: 'ジャカルタ', lat: -6.17511, lng: 106.86504, icon: icon[6] }, { name: 'シドニー', lat: -33.86882, lng: 151.209296, icon: icon[7] }, { name: 'ロサンゼルス', lat: 34.052234, lng: -118.243685, icon: icon[8] }, { name: 'ニューヨーク', lat: 40.712775, lng: -74.005973, icon: icon[9] }, { name: 'リマ', lat: -12.046373, lng: -77.042754, icon: icon[10] }, { name: 'サンパウロ', lat: -23.55052, lng: -46.633309, icon: icon[11] } ];
思ってたより簡単にできましたね。