/** * @Author: ANH DUNG Mar 05, 2015 * @Todo: cron to run this */ public static function HandleUpdateLonLatTableBuilding() { $mBuilding = ApiBuilding::model()->findAll(); foreach ($mBuilding as $model) { $buildkey = ApiBuilding::getValueKeyFromModel($model, 'building_key'); $building_name = ApiBuilding::getValueKeyFromModel($model, 'building_name'); $mPostalcode = ApiPostcode::getModelByStringValueOfKey($buildkey); $postal_code = ApiPostcode::getValueKeyFromModel($mPostalcode, "postal_code"); $aResLongLat = ApiPostcode::CurlToGetLongLat($building_name, $postal_code); ApiBuilding::UpdateLongLat($model, $aResLongLat); } }
public static function GetInfoMapAd($model) { /* --------------------------------------------------- * DTOAN * ADD LOCATION * lay 2 so dau * -------------------------------------------------- */ if (!empty($model->postal_code)) { $postaCode = substr($model->postal_code, 0, 2); $checkLocation = ProLocation::model()->find("t.postal_code like '%{$postaCode}%'"); if ($checkLocation && isset($checkLocation->id)) { $model->location_id = $checkLocation->id; } } // if ($model->map_config_distance != Yii::app()->params['distance']) { $position = explode('-', $model->postal_code_xy); if (count($position) == 2) { $dist = Yii::app()->params['distance']; $limit = Yii::app()->params['limit_result']; $long = $position[0]; $lat = $position[1]; $mrt_distance = array(); $mrt = ApiNearRmt::model()->findAll(); foreach ($mrt as $item) { $tmp = Listing::findDistance($long, $item->long_street, $lat, $item->lat_street); if ($tmp <= $dist) { $mrt_distance[$item->id]['v'] = $item->name . "({$tmp} Km)"; $mrt_distance[$item->id]['x'] = $item->long_street; $mrt_distance[$item->id]['y'] = $item->lat_street; } } //near school $school_distance = array(); $school = ApiNearSchool::model()->findAll(); foreach ($school as $school_item) { $tmp = Listing::findDistance($long, $school_item->long_street, $lat, $school_item->lat_street); if ($tmp <= $dist) { $school_distance[$school_item->id]['v'] = $school_item->name . "({$tmp} Km)"; $school_distance[$school_item->id]['x'] = $school_item->long_street; $school_distance[$school_item->id]['y'] = $school_item->lat_street; } } //building nam $building_distance = array(); $allBuilding = ApiBuilding::model()->findAll(); foreach ($allBuilding as $building) { $tmp = Listing::findDistance($long, $building->long_street, $lat, $building->lat_street); if ($tmp <= $dist) { $name = substr($building->building, 6, 45); $building_distance[$building->id]['v'] = $name . "({$tmp} Km)"; $building_distance[$building->id]['x'] = $building->long_street; $building_distance[$building->id]['y'] = $building->lat_street; } } /* 51 => 'Nearest MRT Stations', 23 => 'Nearest Schools' 1093 => 'Nearest Building', 'car' => 'Nearest bus stop', */ //$nearBy = @file_get_contents('http://www.streetdirectory.com/api/?mode=tips&act=nearby&output=json&x=' . trim($position[0]) . '&y=' . trim($position[1]) . '&dist=' . $dist . '&start=0&limit=' . $limit . '&country=sg'); /* $link = 'http://www.streetdirectory.com/api/?mode=tips&act=nearby&output=json&x=' . trim($position[0]) . '&y=' . trim($position[1]) . '&dist=' . $dist . '&start=0&limit=' . $limit . '&country=sg'; $ch = curl_init(); $domain = $_SERVER["HTTP_HOST"]; curl_setopt($ch, CURLOPT_URL, "$link"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "domain=$domain"); curl_setopt($ch, CURLOPT_HEADER, 0); $nearBy = curl_exec($ch); $arrCat = Listing::$nearBy; $data = json_decode($nearBy, true); $dataCat = array(); if (is_array($data) && count($data) > 0) { foreach ($data as $item) { if (isset($item['cat']) && isset($arrCat[$item['cat']])) { $dataCat[$item['cat']][] = $item; } } }*/ $dataCat[51] = $mrt_distance; $dataCat[23] = $school_distance; $dataCat[1093] = $building_distance; $dataCat['car'] = array(); // ANH DUNG Oct 27, 2014 tinh property_house_blk_no // 1. co postal code // 2. House/blk no = building Number (trong table walkup ) + $model->property_house_blk_no = self::getHouseBlkNo($model->postal_code); $model->property_street_name = self::getStreetName($model->postal_code); $model->map_config_distance = $dist; $model->map_config_result = $limit; $model->json_map = json_encode($dataCat); } }
$countPhoto = ProListingReleated::model()->countByAttributes(array('listing_id' => $id)); if ($countPhoto < 21 && $checkitem == 1) { $releatedListing = new ProListingReleated(); $releatedListing->listing_id = $id; $releatedListing->listing_releated = $releated; $releatedListing->save(); } else { ProListingReleated::model()->deleteAllByAttributes(array('listing_id' => $id, 'listing_releated' => $releated)); } } /* * DTOAN * Search listing on create listing */ public function actionSearchlistingonmap() { if (!isset($_GET['term']) || !Yii::app()->request->isAjaxRequest) { throw new CHttpException(404, "Invalid request"); } $criteria = new CDbCriteria(); $criteria->compare('t.status', STATUS_ACTIVE); $criteria->compare('t.status_listing', STATUS_LISTING_ACTIVE); $criteria->addSearchCondition('t.property_name_or_address', $_GET['term'], true); // true ==> LIKE '%...%' $criteria->limit = 30; $models = Listing::model()->findAll($criteria); $returnVal = array(); $cmsFormat = new CmsFormatter(); $html = ''; $url = Yii::app()->createAbsoluteUrl('/upload/datamap.txt'); $output = $this->curl_get_contents($url); $dataType = array(); if ($output != '') { $dataType = json_decode($output, true); } foreach ($models as $model) { $type = isset($dataType[$model->postal_code]) ? $dataType[$model->postal_code]['title'] : ''; $PropertyID = isset($dataType[$model->postal_code]) ? $dataType[$model->postal_code]['id'] : ''; $html .= '<tr class="sort_title" > <td class="alt"> <input type="radio" value="1" name="check-radio" class="select-postal-code"> </td> <td class="alt title " data-timestamp="' . $model->property_name_or_address . '" >' . $model->property_name_or_address . '</td> <td class="alt title type_custom_onsite propertyType" type="' . $PropertyID . '" >' . $type . '</td> <td class="alt postal-code" xy="' . $model->postal_code_xy . '">' . $model->postal_code . '</td> </tr>'; } echo $html; Yii::app()->end(); } function curl_get_contents($url) { // Initiate the curl session $ch = curl_init(); // Set the URL curl_setopt($ch, CURLOPT_URL, $url); // Removes the headers from the output curl_setopt($ch, CURLOPT_HEADER, 0); // Return the output instead of displaying it directly curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);