NEST Elasticsearch GeoPoint类

问题描述 投票:0回答:1

我们有一个字段,在索引映射中被指定为GeoPoint 。

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

如果我们创建一个对象,并使用以下方法给这个字段赋值。

location = new GeoCoordinate(54.34445, -3.2344)

索引显示这个字段是一个GeoPoint,其值为 -3.2344, 54.34445

然而,如果我们使用一个字符串(如.NET)来做索引,在Kibana中的索引也会显示为一个GeoPoint,但格式为.NET。"54.34445, -3.2344" 在Kibana中的索引也会显示为一个GeoPoint,但格式为 54.34445, -3.2344

两者都不可能是对的!因为对于同一索引点,latlon值会完全不同。

实际上,按照文档的规定,以两种不同的方式创建同一个点,会在索引中创建两个完全不同的位置。

elasticsearch nest
1个回答
0
投票

有多个 方式 最值得注意的是,一个格式为""的字符串。"lat,lon"的数组,或者是形式为 [lon,lat].

请注意,Kibana很可能只坚持一种格式("lat,lon" -- 54.34445, -3.2344 是在英国,反之则在索马里沿海),同时索引doc值支持多。


0
投票

A GeoCoordinate 检察官接受 latitudelongitude 的顺序(有一个重载,可以接受一个可选的 z 值)。)

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

以字符串形式表示的坐标为 lat,lon. 请参阅文档中的重要告诫。.

© www.soinside.com 2019 - 2024. All rights reserved.