public function genXml() { $center_lat = $_GET['lat']; $center_lng = $_GET['lng']; $radius = $_GET['radius']; $datas = Place::select(DB::raw("`place_id`,`name`,`address`, `lat`, `lng`, ( 6371 * acos( cos( radians(?) ) * cos( radians( `lat`) ) * cos( radians( `lng` ) - radians(?) ) + sin( radians(?) ) * sin( radians( `lat` ) ) ) ) AS `distance`"))->havingRaw("distance < ?")->orderBy("distance")->limit("20")->setBindings([$center_lat, $center_lng, $center_lat, $radius])->get()->toArray(); // $rs_post_id = Post::getPostByPlaceId($datas['place_id']); $xml = new XMLWriter(); $xml->openMemory(); $xml->startDocument(); $xml->startElement('markers'); foreach ($datas as $row) { $xml->startElement('marker'); $xml->writeAttribute('name', $row['name']); $xml->writeAttribute('address', $row['address']); $xml->writeAttribute('lat', $row['lat']); $xml->writeAttribute('lng', $row['lng']); $xml->writeAttribute('place_id', $row['place_id']); $xml->endElement(); } $xml->endElement(); $xml->endDocument(); $content = $xml->outputMemory(); $xml = null; return response($content)->header('Content-Type', 'text/xml'); }