Насколько я знаю, вам придется индексировать саму фигуру вместо того, чтобы иметь ее как два отдельных поля; индексировать круг с заданной центральной точкой и радиусом. Вы можете использовать RptWithGeometrySpatialField поле и индексировать свою форму как :
Circle(4.56,1.23 d=0.0710)
Последнее расстояние в градусах, для преобразования в мили / км / метры, используйте формулы, представленные в вики, связанной выше:
Единицы, Преобразование
Степени до желаемых единиц: Math.toRadians(degrees) *
earthRadiusInTheUnitsYouWant
Степени до километры: degrees * 111.1951
градусы в мили: degrees * 69.09341
RptWithGeometrySpatialField должен быть наиболее точным вариантом. Когда вы запрашиваете, вы используете оператор Intersects
:
&fq={!field f=geo}Intersects(-74.093 41.042)
.. должно работать. Вам может понадобиться тип POINT или аналогичный, чтобы обернуть координаты, но, насколько я помню, в этом нет необходимости. Ранее это было lon lat
, по крайней мере, если не было запятой и lat,lon
, если было, поэтому убедитесь, что вы используете правильный формат.