elasticsearch - 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 点,在索引中创建两个完全不同的位置
解决方案
GeoCoordinate
ctor 接受latitude
并按该longitude
顺序接受(也有一个重载来接受可选z
值)。
它序列化为[lon, lat]
,符合GeoJSON 格式 RFC。众所周知的文本 (WKT),另一种用于表示几何的格式使用顺序x
, y
,对应于lon
和lat
。
表示为字符串的坐标采用lat,lon
. 请参阅文档中的重要警告。
推荐阅读
- python - 是否有在模拟函数中调用方法的选项?
- c# - C#:如果有多个具有默认值的参数,在使用函数时如何跳过以前的参数
- powershell - 用于升级 PowerShell 版本的 PowerShell 脚本
- mysql - 如何将 3 个 sql 查询合并为一个
- php - 如何在 php 框架中使用 Angular 应用程序
- java - 有没有一种替代方法来检查 javafx 应用程序中的许多空白字段?
- c - Is it worse in any aspect to use the CMPXCHG instruction on an 8-bit field than on a 32-bit field?
- android - 无法访问 Android Q 中的存储空间
- powershell - POWERSHELL RDP 文件打开
- java - 如何将导出的 java 对象的格式更改为文件?