1 |
|
2 |
|
3 |
|
4 | var baseQuery = require('./reverse_geo_base');
|
5 |
|
6 | module.exports = function( centroid, opts ){
|
7 |
|
8 | if( !opts ){ opts = {}; }
|
9 |
|
10 | var options = {
|
11 | distance: opts.distance || '50km',
|
12 | size: opts.size || 1,
|
13 | field: opts.field || 'center_point'
|
14 | }
|
15 |
|
16 | var query = baseQuery( centroid, options );
|
17 |
|
18 | var filter = {
|
19 | 'geo_distance' : {
|
20 | 'distance': options.distance,
|
21 | 'distance_type': 'plane',
|
22 | 'optimize_bbox': 'indexed',
|
23 | '_cache': true
|
24 | }
|
25 | }
|
26 |
|
27 | filter.geo_distance[ options.field ] = {
|
28 | 'lat': Number( centroid.lat ).toFixed(2),
|
29 | 'lon': Number( centroid.lon ).toFixed(2)
|
30 | }
|
31 |
|
32 |
|
33 | query.query.filtered.filter.bool.must.push( filter );
|
34 |
|
35 | return query;
|
36 | } |
\ | No newline at end of file |