Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java neo4j将空间wgs84点添加到节点以计算距离_Java_Neo4j_Spring Data Neo4j_Neo4j Spatial - Fatal编程技术网

Java neo4j将空间wgs84点添加到节点以计算距离

Java neo4j将空间wgs84点添加到节点以计算距离,java,neo4j,spring-data-neo4j,neo4j-spatial,Java,Neo4j,Spring Data Neo4j,Neo4j Spatial,我正在尝试向节点添加一个lon lat点。我找不到任何关于应该使用哪个java类的文档 以下是我所拥有的: @NodeEntity public class Coordination { @Id @GeneratedValue private Long id; @Index private Value point; private Double lon; private Double lat; @Relationship(t

我正在尝试向节点添加一个lon lat点。我找不到任何关于应该使用哪个java类的文档

以下是我所拥有的:

@NodeEntity
public class Coordination {

    @Id
    @GeneratedValue
    private Long id;

    @Index
    private Value point;


    private Double lon;
    private Double lat;
    @Relationship(type = "GEO_LOCATION", direction = Relationship.INCOMING)
    private List<GeoLocation> geoLocations;

    public Coordination(Double lon, Double lat) {
        Value point = new PointValue(new InternalPoint2D(4326, lon, lat));
        this.lon = lon;
        this.lat = lat;
    }
}
@NodeEntity
公共班级协调{
@身份证
@生成值
私人长id;
@索引
私人价值点;
私人双伦敦;
私人双lat;
@关系(type=“GEO_LOCATION”,direction=Relationship.INCOMING)
私人名单地理位置;
公共协调(双lon、双lat){
值点=新点值(新的内部点2D(4326,lon,lat));
this.lon=lon;
this.lat=lat;
}
}

价值观课程对我不起作用。我错过了什么?

使用
CompositeAttributeConverter
可以定义自己的类来存储纬度和经度坐标。但是,您也可以使用Spring数据共享中定义的内置
和相应的
距离

以下是Spring Data Neo4j中的测试用例示例:

public class Restaurant implements Comparable<Restaurant> {

    @Id @GeneratedValue private Long id;
    private String name;
    @Convert(PointConverter.class) private Point location; //Encapsulates lat/lon 
    private int zip;
    private double score;
    private String description;
    private boolean halal;
公共级餐厅{
@Id@GeneratedValue private Long Id;
私有字符串名称;
@Convert(PointConverter.class)私有点位置;//封装lat/lon
私人邮政编码;
私人双积分;
私有字符串描述;
私人布尔清真;
然后可以定义以下方法:

import org.springframework.data.geo.Point;
import org.springframework.data.neo4j.conversion.PointConverter;

public interface RestaurantRepository extends Neo4jRepository<Restaurant, Long> {

    List<Restaurant> findByNameAndLocationNear(String name, Distance distance, Point point);

    List<Restaurant> findByLocationNearAndName(Distance distance, Point point, String name);
}
import org.springframework.data.geo.Point;
导入org.springframework.data.neo4j.conversion.PointConverter;
公共接口RestaurantRepository扩展了Neo4jRepository{
列出findByNameAndLocationNear(字符串名称、距离、点);
列出FindBylocationArandName(距离、点、字符串名称);
}
finder方法将生成密码,该密码将以下参数传递给
distance
函数:

  • 在节点上定义的lat和lon属性
  • at和lon参数作为参数传递给finder方法

这就是你想要的吗?如果是,很好!如果不是,请澄清你的问题。

你能分享Point的导入语句吗?对于这两个类?协调findByPoint(@Param(“Point”)Point)Org.No.4J.OG.Exist.Cop.MappExtExtExchange:在OGM版本中不支持使用CypItItEtTeFieldValter的属性。考虑实现自定义过滤器功能。保存对象没有问题,但是当使用FifByPoint(Point IT点)时我得到的是一个带有CopyTeAtEtTeFielVter的属性,在这个版本的OGM中不支持过滤器。考虑实现一个自定义过滤函数。我已经包含了导入。请在主分支上克隆spring-data-neo4j存储库并运行
RestaurantTests
。那里使用的neo4j ogm版本似乎是3.1.4(最新版本)…顺便问一下,您是否也可以共享您正在使用的spring-data-neo4j、spring data commons和neo4j ogm的版本?让我们连接:jasper@liberation-data.com..从那里我们可以设置一个视频通话,我将为您运行您需要编写的代码,以支持
Point