Subversion Repository Public Repository

Nextrek

Diff Revisions 255 vs 258 for /Android/SmartCharging/endPoints/LocalRepository.php

Diff revisions: vs.
  @@ -173,6 +173,45 @@
173 173 return 1;
174 174 }
175 175 }
176 +
177 + public function getCloseLocals($tipologia, $lat, $lon, $distance) {
178 + $local_list = array();
179 +
180 + $harvesinFormulaSQL = "SELECT id, lat, lon, tipologia, nomelocale,
181 + ( 6371 * acos( cos( radians(".$lat.") ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(".$lon.") ) + sin( radians(".$lat.") ) * sin( radians( lat ) ) ) ) AS distance
182 + FROM locale
183 + WHERE tipologia='".$tipologia."'
184 + HAVING distance < ".$distance/1000.0."
185 + ORDER BY distance";
186 + //ORDER BY distance LIMIT 0 , 20"; //nel caso in cui si voglia introdurre il limite di locali vicini
187 +
188 + //echo "<br/>".$harvesinFormulaSQL."<br/>";
189 +
190 + try {
191 + $query = $this->db->query($harvesinFormulaSQL);
192 +
193 + if (!$query) return null;
194 +
195 + $rows = $query->fetchAll(PDO::FETCH_ASSOC);
196 +
197 + foreach ($rows as $row) {
198 + $local = array();
199 + $local["id"] = $row["id"];
200 + $local["lat"] = $row["lat"];
201 + $local["lon"] = $row["lon"];
202 + $local["tipologia"] = $row["tipologia"];
203 + $local["nomelocale"] = $row["nomelocale"];
204 +
205 + array_push($local_list, $local);
206 + }
207 +
208 + return $local_list;
209 +
210 + } catch (PDOException $e) {
211 + echo $e->getMessage();
212 + return null;
213 + }
214 + }
176 215 }
177 216
178 217 ?>