示例#1
0
 /**
  * @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);
     }
 }
示例#2
0
 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);
     }
 }
示例#3
0
     $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);