'ok', 'err' => ''); try { error_log("api start 1\n",3,"gps.log"); error_log("POST=".print_r($_POST,1)."\n",3,"gps.log"); if (empty($_POST) || empty($_POST["lat"]) || empty($_POST["lng"])) throw new \Exception("parameter empty"); foreach ($_POST as $k => $v) { $$k = htmlspecialchars(stripslashes(trim($v))); } error_log("api start 2\n",3,"gps.log"); require_once "db/database.php"; /* Method.1 define("EARTH_RADIUS", 6371); //地球半徑,平均半徑為6371km /** * 計算某個經緯度的周圍某段距離的正方形的四個點 * @param lng float 經度 * @param lat float 緯度 * @param distance float 該點所在圓的半徑,該圓與此正方形內切,默認值為1公里 * @return array 正方形的四個點的經緯度坐標 */ /* function returnSquarePoint($lng, $lat, $distance = 5) { $dlng = 2*asin(sin($distance/(2*EARTH_RADIUS))/cos(deg2rad($lat))); $dlng = rad2deg($dlng); $dlat = $distance/EARTH_RADIUS; $dlat = rad2deg($dlat); return array("left-top" => array("lat" => $lat+$dlat, "lng" => $lng-$dlng), "right-top" => array("lat" => $lat+$dlat, "lng" => $lng+$dlng), "left-bottom" => array("lat" => $lat-$dlat, "lng" => $lng-$dlng), "right-bottom" => array("lat" => $lat-$dlat, "lng" => $lng+$dlng)); } $squares = returnSquarePoint($lng, $lat); $sql = "select address from facility "; $sql .= "where latitude > '".$squares["right-bottom"]["lat"]."' and latitude < '".$squares["left-top"]["lat"]."'"; $sql .= "and longitude > '".$squares["left-top"]["lng"]."' and longitude < '".$squares["right-bottom"]["lng"]."' "; $sql .= "group by address"; */ /* Method.2 */ //$latitude = substr($lat, 0, strpos($lat, ".")).substr($lat, strpos($lat, "."), 4); $latitude = substr($lat, 0, 6); //$longitude = substr($lng, 0, strpos($lng, ".")).substr($lng, strpos($lng, "."), 4); $longitude = substr($lng, 0, 7); $sql = "select address from facility where latitude like '".$latitude."%' and longitude like '".$longitude."%'"; error_log($sql."\n",3,"gps.log"); $res = mysqli_query($link, $sql); while ($row = mysqli_fetch_row($res)) { $data[] = $row[0]; } mysqli_free_result($res); error_log("data=".print_r($data,1)."\n",3,"gps.log"); $rarr['content'] = $data; }catch(\Exception $e) { $rarr['st'] = 'err'; $rarr['err'] = $e->getMessage(); } echo json_encode($rarr, JSON_UNESCAPED_UNICODE); ?>