首页 > 解决方案 > NEST Elasticsearch GeoPoint 类

问题描述

我们有一个在 Index Mapping 中指定为 GeoPoint 的字段:

.GeoPoint(d => d.Name(c => c.Location))

如果我们创建一个对象并使用以下方法为该字段分配一个值:

location = new GeoCoordinate(54.34445, -3.2344)

索引将其显示为 GeoPoint,其值为-3.2344, 54.34445

但是,如果我们使用诸如 :"54.34445, -3.2344"之类的字符串进行索引,则 Kibana 中的索引也将其显示为 GeoPoint,但格式为 54.34445, -3.2344

两者都不对!由于同一点的纬度/经度值将完全不同,因此索引。

实际上,根据文档以 2 种不同方式创建 SAME 点,在索引中创建两个完全不同的位置

标签: elasticsearchnest

解决方案


GeoCoordinatector 接受latitude并按该longitude顺序接受(也有一个重载来接受可选z值)。

它序列化为[lon, lat],符合GeoJSON 格式 RFC。众所周知的文本 (WKT),另一种用于表示几何的格式使用顺序x, y,对应于lonlat

表示为字符串的坐标采用lat,lon. 请参阅文档中的重要警告


推荐阅读