예제 #1
0
 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;
 }
예제 #2
0
 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;
 }
예제 #3
0
 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');
 }