static function getWithinBbox($bbox) { list($w, $s) = reproject($bbox[0], $bbox[1], "4326", "900913"); list($e, $n) = reproject($bbox[2], $bbox[3], "4326", "900913"); $g = "GeomFromText('POLYGON(({$w} {$s},{$e} {$s},{$e} {$n},{$w} {$n},{$w} {$s}))',900913)"; $q = "SELECT id,astext(xy) " . "FROM panoramas WHERE authorised=1 AND xy && {$g}"; $panos = array(); $result = pg_query($q); while ($row = pg_fetch_array($result, null, PGSQL_ASSOC)) { if (file_exists(OTV_LIVE_PANOS . "/" . $row["id"] . ".jpg")) { $panos[] = Panorama::loadFromRow($row); } } return $panos; }
function actionGetWithinBbox($input) { $bbox = explode(",", $input["bbox"]); if (count($bbox) == 4) { $numerics = 0; for ($i = 0; $i < 4; $i++) { if (is_numeric($bbox[$i])) { $numerics++; } } if ($numerics == 4) { header("Content-type: application/json"); $panos = Panorama::getWithinBbox($bbox); $this->view->outputPanosAsJSON($panos); return 200; } } return 400; }
public function test_for_multiple_hasone_and_belongsto() { $Altea = new Picture(array('title' => 'Altea Cupula de Mediterraneo, Costa Blanca')); $Altea->main_thumbnail->build(array('caption' => 'Altea')); $this->assertTrue($Altea->main_thumbnail->isNewRecord()); $this->assertEqual($Altea->main_thumbnail->getType(), 'Thumbnail'); $this->assertTrue($Altea->save()); $this->assertFalse($Altea->main_thumbnail->isNewRecord()); $Altea = new Picture(array('title' => 'Altea2')); $Altea->main_thumbnail->create(array('caption' => 'Altea2')); $this->assertFalse($Altea->main_thumbnail->isNewRecord()); $this->assertEqual($Altea->main_thumbnail->getType(), 'Thumbnail'); $this->assertTrue($Altea->save()); $Altea = new Picture(array('title' => 'Altea3')); $Altea->main_thumbnail->assign(new Thumbnail(array('caption' => 'Altea3'))); $this->assertTrue($Altea->main_thumbnail->isNewRecord()); $this->assertEqual($Altea->main_thumbnail->getType(), 'Thumbnail'); $this->assertTrue($Altea->save()); $this->assertFalse($Altea->main_thumbnail->isNewRecord()); $Altea->main_thumbnail->replace(new Thumbnail(array('caption' => '3rd Altea pic'))); $this->assertFalse($Altea->main_thumbnail->isNewRecord()); $Thumbnail = new Thumbnail(); $this->assertFalse($Thumbnail->findFirstBy('caption', 'Altea3')); $Panorama = new Panorama(array('title' => 'Views from the old town')); $this->assertTrue($Panorama->save()); $Panorama->thumbnail->build(array('caption' => 'Altea paronamic views from the Old town')); $this->assertEqual($Panorama->thumbnail->getType(), 'Thumbnail'); $this->assertTrue($Panorama->thumbnail->isNewRecord()); $this->assertTrue($Panorama->save()); $this->assertFalse($Panorama->thumbnail->isNewRecord()); $Thumbnail = new Thumbnail(); $Thumbnail = $Thumbnail->findFirstBy('caption:has', 'Old town', array('include' => 'panorama')); $this->assertEqual($Thumbnail->panorama->title, 'Views from the old town'); }