/** * @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]); }
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]); }