ES经纬度搜索介绍

ES支持经纬度搜索,包括查询矩形内的点以及以固定点为中心进行范围查询。

ES经纬度查询datatype设置

"properties": {
    "location": {
        //字段类型设置 geo_point,地理坐标点
        "type": "geo_point"
    }
}

经纬度类型数据写入

经纬度类型字段,支持多种写入方式:

//map lat 纬度,lon经度
"location": { 
    "lat": 41.12,
    "lon": -71.34
}
//字符串,逗号分隔 纬度,经度
{
    "location": "41.12,-71.34"
}
//地理哈希
{
    "location": "drm3btev3e86"
}
//数组[经度, 纬度]
{
    "location": [ -71.34, 41.12 ]
}

矩形内点数据查询

矩形范围内坐标点数据查询格式固定,结构如下:

"location": {
    //左上角坐标
    "top_left": {
      "lat": 42,
      "lon": -72
    },
    //右下角坐标
    "bottom_right": {
      "lat": 40,
      "lon": -74
    }
}

固定点中心范围查询

以固定点坐标为中心,查询范围内坐标:写入时的坐标指定方式,查询时同样适用:

{
    //查询范围 单位支持 m/km/mm/cm/in等
    "distance" : "200km",
    //经纬度距离计算方式,默认弧度,可以使用plane(平面),相对速度快,但是在靠近极点时不准确
    "distance_type": "arc",
    //圆心点坐标
    "pin.location" : {
        "lat" : 40,
        "lon" : -70
    }
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐