Create test controller for st_distance functionality in database
This commit is contained in:
parent
20756296e6
commit
6737099278
3 changed files with 133 additions and 7 deletions
|
|
@ -31,11 +31,107 @@ doctrine:
|
|||
prefix: 'App\Entity'
|
||||
alias: App
|
||||
dql:
|
||||
string_functions:
|
||||
# for postgresql
|
||||
geometry: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\Geometry
|
||||
stbuffer: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STBuffer
|
||||
stcollect: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STCollect
|
||||
stsnaptogrid: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STSnapToGrid
|
||||
stoverlaps: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STOverlaps
|
||||
numeric_functions:
|
||||
st_contains: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STContains
|
||||
contains: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Contains
|
||||
st_area: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Area
|
||||
st_geomfromtext: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\GeomFromText
|
||||
st_intersects: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STIntersects
|
||||
st_buffer: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STBuffer
|
||||
point: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Point
|
||||
# for postgresql
|
||||
starea: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STArea
|
||||
stasbinary: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STAsBinary
|
||||
stasgeojson: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STAsGeoJson
|
||||
stastext: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STAsText
|
||||
stazimuth: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STAzimuth
|
||||
stboundary: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STBoundary
|
||||
stcentroid: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STCentroid
|
||||
stclosestpoint: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STClosestPoint
|
||||
stcontains: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STContains
|
||||
stcontainsproperly: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STContainsProperly
|
||||
stcoveredby: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STCoveredBy
|
||||
stcovers: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STCovers
|
||||
stcrosses: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STCrosses
|
||||
stdisjoint: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STDisjoint
|
||||
stdistance: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STDistance
|
||||
stdistancesphere: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STDistanceSphere
|
||||
stdwithin: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STDWithin
|
||||
stenvelope: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STEnvelope
|
||||
stexpand: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STExpand
|
||||
stextent: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STExtent
|
||||
stgeomfromtext: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STGeomFromText
|
||||
stintersection: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STIntersection
|
||||
stintersects: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STIntersects
|
||||
stlength: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STLength
|
||||
stlinecrossingdirection: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STLineCrossingDirection
|
||||
stlineinterpolatepoint: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STLineInterpolatePoint
|
||||
stmakebox2d: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STMakeBox2D
|
||||
stmakeline: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STMakeLine
|
||||
stmakepoint: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STMakePoint
|
||||
stperimeter: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STPerimeter
|
||||
stpoint: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STPoint
|
||||
stscale: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STScale
|
||||
stsetsrid: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STSetSRID
|
||||
stsimplify: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STSimplify
|
||||
ststartpoint: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STStartPoint
|
||||
stsummary: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STSummary
|
||||
sttouches: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STTouches
|
||||
sttransform: CrEOF\Spatial\ORM\Query\AST\Functions\PostgreSql\STTransform
|
||||
|
||||
# for mysql
|
||||
area: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Area
|
||||
asbinary: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\AsBinary
|
||||
astext: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\AsText
|
||||
buffer: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Buffer
|
||||
centroid: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Centroid
|
||||
contains: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Contains
|
||||
crosses: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Crosses
|
||||
dimension: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Dimension
|
||||
distance: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Distance
|
||||
disjoint: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Disjoint
|
||||
distancefrommultyLine: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\DistanceFromMultyLine
|
||||
endpoint: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\EndPoint
|
||||
envelope: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Envelope
|
||||
equals: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Equals
|
||||
exteriorring: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\ExteriorRing
|
||||
geodistpt: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\GeodistPt
|
||||
geometrytype: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\GeometryType
|
||||
geomfromtext: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\GeomFromText
|
||||
glength: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\GLength
|
||||
interiorringn: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\InteriorRingN
|
||||
intersects: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Intersects
|
||||
isclosed: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\IsClosed
|
||||
isempty: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\IsEmpty
|
||||
issimple: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\IsSimple
|
||||
linestringfromwkb: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\LineStringFromWKB
|
||||
linestring: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\LineString
|
||||
mbrcontains: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\MBRContains
|
||||
mbrdisjoint: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\MBRDisjoint
|
||||
mbrequal: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\MBREqual
|
||||
mbrintersects: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\MBRIntersects
|
||||
mbroverlaps: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\MBROverlaps
|
||||
mbrtouches: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\MBRTouches
|
||||
mbrwithin: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\MBRWithin
|
||||
numinteriorrings: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\NumInteriorRings
|
||||
numpoints: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\NumPoints
|
||||
overlaps: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Overlaps
|
||||
pointfromwkb: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\PointFromWKB
|
||||
pointn: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\PointN
|
||||
point: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Point
|
||||
srid: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\SRID
|
||||
startpoint: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\StartPoint
|
||||
st_buffer: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STBuffer
|
||||
st_contains: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STContains
|
||||
st_crosses: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STCrosses
|
||||
st_disjoint: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STDisjoint
|
||||
st_distance: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STDistance
|
||||
st_equals: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STEquals
|
||||
st_intersects: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STIntersects
|
||||
st_overlaps: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STOverlaps
|
||||
st_touches: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STTouches
|
||||
st_within: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\STWithin
|
||||
touches: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Touches
|
||||
within: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Within
|
||||
x: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\X
|
||||
y: CrEOF\Spatial\ORM\Query\AST\Functions\MySql\Y
|
||||
|
|
|
|||
|
|
@ -8,3 +8,6 @@ test_gmap:
|
|||
path: /test/gmap
|
||||
controller: App\Controller\TestController::gmap
|
||||
|
||||
test_distance:
|
||||
path: /test/distance
|
||||
controller: App\Controller\TestController::distance
|
||||
|
|
|
|||
|
|
@ -5,6 +5,10 @@ namespace App\Controller;
|
|||
use App\Ramcar\BaseController;
|
||||
use App\Access\Generator;
|
||||
|
||||
use CrEOF\Spatial\PHP\Types\Geometry\Point;
|
||||
|
||||
use App\Entity\Outlet;
|
||||
|
||||
class TestController extends BaseController
|
||||
{
|
||||
public function index(Generator $acl_gen)
|
||||
|
|
@ -32,4 +36,27 @@ class TestController extends BaseController
|
|||
|
||||
return $this->render('test/map.html.twig', $params);
|
||||
}
|
||||
|
||||
public function distance()
|
||||
{
|
||||
$params = $this->initParameters('home');
|
||||
|
||||
$point = new Point(121.0495453, 14.6042567);
|
||||
|
||||
// test if we can get the top 5 closest outlets to a point
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$query = $em->createQuery('SELECT o, st_distance(o.coordinates, point(:lng, :lat)) as dist FROM App\Entity\Outlet o ORDER BY dist')
|
||||
->setParameter('lat', $point->getLatitude())
|
||||
->setParameter('lng', $point->getLongitude())
|
||||
->setMaxResults(5);
|
||||
error_log($query->getSql());
|
||||
$result = $query->getResult();
|
||||
|
||||
foreach ($result as $row)
|
||||
{
|
||||
error_log($row[0]->getName() . ' - ' . $row['dist']);
|
||||
}
|
||||
|
||||
return $this->render('home.html.twig', $params);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue