You are browsing a version that is no longer maintained. |
Geospatial Queries
You can execute some special queries when using geospatial indexes like checking for documents within a rectangle or circle.
Mapping
First, setup some documents like the following:
1 <?php
/**
* @Document
* @Index(keys={"coordinates"="2d"})
*/
class City
{
/** @Id */
public $id;
/** @Field(type="string") */
public $name;
/** @EmbedOne(targetDocument=Coordinates::class) */
public $coordinates;
}
/** @EmbeddedDocument */
class Coordinates
{
/** @Field(type="float") */
public $x;
/** @Field(type="float") */
public $y;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Near Query
Now you can execute queries against these documents like the
following. Check for the 10 nearest cities to a given longitude
and latitude with the near($longitude, $latitude)
method: