国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ES 地圖經(jīng)緯度搜索

這篇具有很好參考價值的文章主要介紹了ES 地圖經(jīng)緯度搜索。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ES中提供了一個數(shù)據(jù)類型 geo_point,這個類型就是用來存儲經(jīng)緯度的。

創(chuàng)建一個帶geo_point類型的索引,并添加測試數(shù)據(jù)

# 創(chuàng)建一個索引,指定一個name,locaiton
PUT /map
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 1
  },
  "mappings": {
    "map": {
      "properties": {
        "name": {
          "type": "text"
        },
        "location": {
          "type": "geo_point"
        }
      }
    }
  }
}


# 添加測試數(shù)據(jù)
PUT /map/map/1
{
  "name": "天安門",
  "location": {
    "lon": 116.403981,
    "lat": 39.914492 
  }
}


PUT /map/map/2
{
  "name": "海淀公園",
  "location": {
    "lon": 116.302509,
    "lat": 39.991152 
  }
}

PUT /map/map/3
{
  "name": "北京動物園",
  "location": {
    "lon": 116.343184,
    "lat": 39.947468 
  }
}

ES的地圖檢索方式

es經(jīng)緯度范圍查詢,elasticsearch,大數(shù)據(jù)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-517108.html

基于RESTful實現(xiàn)地圖檢索

# geo_distance
POST /map/map/_search
{
  "query": {
    "geo_distance": {
      "location": {				# 確定一個點
        "lon": 116.433733,
        "lat": 39.908404
      },
      "distance": 3000,			 # 確定半徑
      "distance_type": "arc"     # 指定形狀為圓形
    }
  }
}
# geo_bounding_box
POST /map/map/_search
{
  "query": {
    "geo_bounding_box": {
      "location": {
        "top_left": {				# 左上角的坐標(biāo)點
          "lon": 116.326943,
          "lat": 39.95499
        },
        "bottom_right": {			 # 右下角的坐標(biāo)點
          "lon": 116.433446,
          "lat": 39.908737
        }
      }
    }
  }
}
# geo_polygon
POST /map/map/_search
{
  "query": {
    "geo_polygon": {
      "location": {
        "points": [					# 指定多個點確定一個多邊形
          {
            "lon": 116.298916,
            "lat": 39.99878
          },
          {
            "lon": 116.29561,
            "lat": 39.972576
          },
          {
            "lon": 116.327661,
            "lat": 39.984739
          }
        ]
      }
    }
  }
}
// 基于Java實現(xiàn)geo_polygon查詢
@Test
public void geoPolygon() throws IOException {
    //1. SearchRequest
    SearchRequest request = new SearchRequest(index);
    request.types(type);

    //2. 指定檢索方式
    SearchSourceBuilder builder = new SearchSourceBuilder();
    List<GeoPoint> points = new ArrayList<>();
    points.add(new GeoPoint(39.99878,116.298916));
    points.add(new GeoPoint(39.972576,116.29561));
    points.add(new GeoPoint(39.984739,116.327661));
    builder.query(QueryBuilders.geoPolygonQuery("location",points));

    request.source(builder);

    //3. 執(zhí)行查詢
    SearchResponse resp = client.search(request, RequestOptions.DEFAULT);

    //4. 輸出結(jié)果
    for (SearchHit hit : resp.getHits().getHits()) {
        System.out.println(hit.getSourceAsMap());
    }
}

到了這里,關(guān)于ES 地圖經(jīng)緯度搜索的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包