java获得数组交叉点_java – 如何从ElasticSearch中的形状获取交叉点

本文介绍了一种使用ElasticSearch查询与特定圆圈相交的多边形的方法,并提供了一个示例代码来演示如何实现该功能。讨论了如何定义圆圈并将其应用于地理形状查询中。

我已将ElasticSearch中的路径存储为Polygon.现在我有一个圆(一个点和一个半径),我能够检查圆点与多边形是否相交(下面是我使用的代码).

问题:如何获得与圆相交的路线中的点?

public Boolean isMatchingDoc(Long elasticDocId,Double latitude,Double longitude,Long radius) {

Coordinate origin = new Coordinate(latitude,longitude);

ShapeBuilder circleShapeBuilder = ShapeBuilder.newCircleBuilder().center(origin).radius(radius,DistanceUnit.METERS);

GeoShapeQueryBuilder geoShapeQueryBuilder = QueryBuilders.geoShapeQuery("route",circleShapeBuilder);

SearchRequestBuilder finalQuery = client.prepareSearch(INDEX).setTypes(TYPE)

.setQuery(QueryBuilders.termQuery("_id",elasticDocId)).setPostFilter(geoShapeQueryBuilder);

SearchResponse searchResponse = finalQuery.execute().actionGet();

SearchHits searchHits = searchResponse.getHits();

if (searchHits.getTotalHits() > 0) {

return true;

}

return false;

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值