Exemplo n.º 1
0
 /**
  * @group geometry
  */
 public function testSelectSTDistanceGeometryCartesian()
 {
     $newYork = new Point(-73.93861099999999, 40.664167);
     $losAngles = new Point(-118.243, 34.0522);
     $dallas = new Point(-96.803889, 32.782778);
     $madison = new Point(-89.40000000000001, 43.066667);
     $entity1 = new PointEntity();
     $entity1->setPoint($newYork);
     $this->_em->persist($entity1);
     $entity2 = new PointEntity();
     $entity2->setPoint($losAngles);
     $this->_em->persist($entity2);
     $entity3 = new PointEntity();
     $entity3->setPoint($dallas);
     $this->_em->persist($entity3);
     $this->_em->flush();
     $this->_em->clear();
     $query = $this->_em->createQuery('SELECT p, ST_Distance(p.point, ST_GeomFromText(:p1)) FROM CrEOF\\Spatial\\Tests\\Fixtures\\PointEntity p');
     $query->setParameter('p1', $madison, 'point');
     $result = $query->getResult();
     $this->assertCount(3, $result);
     $this->assertEquals($entity1, $result[0][0]);
     $this->assertEquals(15.646934398128, $result[0][1]);
     $this->assertEquals($entity2, $result[1][0]);
     $this->assertEquals(30.2188561049899, $result[1][1]);
     $this->assertEquals($entity3, $result[2][0]);
     $this->assertEquals(12.6718564262953, $result[2][1]);
 }
 /**
  * @group geometry
  */
 public function testSelectSTDistanceSphereGeometry()
 {
     $newYork = new Point(-73.93861099999999, 40.664167);
     $losAngles = new Point(-118.243, 34.0522);
     $dallas = new Point(-96.803889, 32.782778);
     $entity1 = new PointEntity();
     $entity1->setPoint($newYork);
     $this->getEntityManager()->persist($entity1);
     $entity2 = new PointEntity();
     $entity2->setPoint($losAngles);
     $this->getEntityManager()->persist($entity2);
     $entity3 = new PointEntity();
     $entity3->setPoint($dallas);
     $this->getEntityManager()->persist($entity3);
     $this->getEntityManager()->flush();
     $this->getEntityManager()->clear();
     $query = $this->getEntityManager()->createQuery('SELECT p, ST_Distance_Sphere(p.point, ST_GeomFromText(:p1)) FROM CrEOF\\Spatial\\Tests\\Fixtures\\PointEntity p');
     $query->setParameter('p1', 'POINT(-89.4 43.066667)', 'string');
     $result = $query->getResult();
     $this->assertCount(3, $result);
     $this->assertEquals($entity1, $result[0][0]);
     $this->assertEquals(1305895.94823465, $result[0][1]);
     $this->assertEquals($entity2, $result[1][0]);
     $this->assertEquals(2684082.08249337, $result[1][1]);
     $this->assertEquals($entity3, $result[2][0]);
     $this->assertEquals(1313754.60684762, $result[2][1]);
 }
Exemplo n.º 3
0
 public function testFindByPoint()
 {
     $point = new Point(1, 1);
     $entity = new PointEntity();
     $entity->setPoint($point);
     $this->getEntityManager()->persist($entity);
     $this->getEntityManager()->flush();
     $this->getEntityManager()->clear();
     $result = $this->getEntityManager()->getRepository(self::POINT_ENTITY)->findByPoint($point);
     $this->assertEquals($entity, $result[0]);
 }