Spring FindByLocationWithin的问题
我试图查询mongo存储库以返回指定地理圈内的数据。我正在使用以下代码:Spring FindByLocationWithin的问题,spring,mongodb,Spring,Mongodb,我试图查询mongo存储库以返回指定地理圈内的数据。我正在使用以下代码: Page<Img> findByLocationWithin(Circle circle, Pageable pageable); 这意味着它没有使用$geoinsin或$centerSphere。如何解决这些问题?我对spring和Couchbase也有同样的问题。。。但问题不在这个问题上。。。因为Spring转换几何值中的距离。 在我的例子中,我也返回了null,但我的问题得到了解决,在模型类中,指定坐标
Page<Img> findByLocationWithin(Circle circle, Pageable pageable);
这意味着它没有使用
$geoinsin
或$centerSphere
。如何解决这些问题?我对spring
和Couchbase
也有同样的问题。。。但问题不在这个问题上。。。因为Spring
转换几何值中的距离。
在我的例子中,我也返回了null
,但我的问题得到了解决,在模型类中,指定坐标[x,y]的属性必须是库点类型org.springframework.data.geo.Point代码>
package com.webServices.rutas.model;
import org.springframework.data.couchbase.core.mapping.id.GeneratedValue;
import org.springframework.data.couchbase.core.mapping.id.GenerationStrategy;
import org.springframework.data.geo.Point;
import com.couchbase.client.java.repository.annotation.Field;
import com.couchbase.client.java.repository.annotation.Id;
public class Parada {
@Id @GeneratedValue(strategy = GenerationStrategy.UNIQUE)
private String id;
@Field
private String type;
@Field
private String nombre;
@Field
private String urlFoto;
@Field
private Point coordenada;
public Parada(String nombre, String urlFoto, Point coordenada) {
super();
this.type = "parada";
this.nombre = nombre;
this.urlFoto = urlFoto;
this.coordenada = coordenada;
}
public Parada() {
super();
this.type = "parada";
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getUrlFoto() {
return urlFoto;
}
public void setUrlFoto(String urlFoto) {
this.urlFoto = urlFoto;
}
public Point getCoordenada() {
return coordenada;
}
public void setCoordenada(Point coordenada) {
this.coordenada = coordenada;
}
@Override
public String toString() {
return "Parada [id=" + id + ", type=" + type + ", nombre=" + nombre + ", urlFoto=" + urlFoto + ", coordenada="
+ coordenada + "]";
}
}
在职期间:
public Iterable<Parada> getParadasCercanasRadio(Punto punto){
Point cuadro = new Point(-2.2,-80.9);
Circle circle = new Circle(cuadro,new Distance(300000, Metrics.KILOMETERS));
return paradaRepository.findByCoordenadaWithin(circle);
}
public Iterable getParadasCercanasRadio(Punto Punto){
cuadro点=新点(-2.2,-80.9);
圆圈=新圆圈(cuadro,新距离(300000,公制公里));
返回paradaRepository.findByCoordenadaWithin(圆圈);
}
在存储库中:
@Dimensional(designDocument = "paradas", spatialViewName = "paradas")
Iterable<Parada> findByCoordenadaWithin(Circle p);
@Dimensional(designDocument=“paradas”,spacealviewname=“paradas”)
Iterable findByCoordenadaWithin(圆圈p);
对不起,我的英语不好
public Iterable<Parada> getParadasCercanasRadio(Punto punto){
Point cuadro = new Point(-2.2,-80.9);
Circle circle = new Circle(cuadro,new Distance(300000, Metrics.KILOMETERS));
return paradaRepository.findByCoordenadaWithin(circle);
}
@Dimensional(designDocument = "paradas", spatialViewName = "paradas")
Iterable<Parada> findByCoordenadaWithin(Circle p);