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

elasticsearch之地理位置查詢geo_shape

這篇具有很好參考價(jià)值的文章主要介紹了elasticsearch之地理位置查詢geo_shape。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

概念

geo_shape則表示有多個(gè)點(diǎn)連成線組成的形狀,實(shí)際開發(fā)中,如果我們的地理坐標(biāo)是一個(gè)地理形狀,則可以使用地理形狀數(shù)據(jù)類型進(jìn)行插入、查詢文檔。比如說(shuō)學(xué)校、大商場(chǎng)這種面積比較大的地理坐標(biāo),都需要geo_shape來(lái)表示。

geo_shape支持存儲(chǔ)的常用形狀數(shù)據(jù)如下:

  • 點(diǎn)(point)
  • 圓形(circle)
  • 矩形(envelope)
  • 多邊形 (polygon)

geo_shape支持的圖形搜索類型:

  • intersects - 查詢的形狀與索引的形狀有重疊(默認(rèn)), 即圖形有交集則匹配。
  • disjoint - 查詢的形狀與索引的形狀完全不重疊。
  • within - 查詢的形狀包含索引的形狀。

geo_shape支持GeoJSON及WKT中描述的大多數(shù)地理形狀:

GeoJson:

{
    "type": "Point",
    "coordinates": [125.6, 10.1]
  }

WKT:

POINT (-77.03653 38.897676) 
LINESTRING (-77.03653 38.897676,-77.009051 38.889939) 
POLYGON ((100.0 0.0, 101.0 0.0, 101.0 1.0, 100.0 1.0, 100.0 0.0)) 
MULTIPOINT (102.0 2.0, 103.0 2.0) 
MULTILINESTRING ((102.0 2.0, 103.0 2.0, 103.0 3.0, 102.0 3.0),(100.2 0.2, 100.8 0.2, 100.8 0.8, 100.2 0.8)) 
MULTIPOLYGON (((102.0 2.0, 103.0 2.0, 103.0 3.0, 102.0 3.0, 102.0 2.0)), ((100.0 0.0, 101.0 0.0, 101.0 1.0, 100.0 1.0, 100.0 0.0), (100.2 0.2, 100.8 0.2, 100.8 0.8, 100.2 0.8, 100.2 0.2))) 
GEOMETRYCOLLECTION (POINT (100.0 0.0), LINESTRING (101.0 0.0, 102.0 1.0)) 

創(chuàng)建索引mapping

PUT /city
{
    "mappings": {
        "properties": {
            "location": {
                "type": "geo_shape" 
            }
        }
    }
}

添加數(shù)據(jù)

  1. 存儲(chǔ)一個(gè)點(diǎn):
POST city/_doc
{
  "location": {
    "type": "point",
    "coordinates": [122.392496,31.245827]
  }
}


POST /city/_doc
{
  "location": "POINT (-77.03653 38.897676)"
}

  1. 存儲(chǔ)一個(gè)多邊形
POST /city/_doc
{
  "location": {
    "type": "polygon", // 存儲(chǔ)的圖形類型為: polygon,表示一個(gè)多邊形
    "coordinates": [ // 支持多個(gè)多邊形
      [ // 第一個(gè)多邊形,多邊形由下面的坐標(biāo)數(shù)組組成。
        [100, 0], // 第一個(gè)坐標(biāo)點(diǎn),坐標(biāo)格式: [經(jīng)度, 緯度]
        [101, 0],
        [101, 1],
        [100, 1],
        [100, 0] // 最后一個(gè)坐標(biāo)點(diǎn),要跟第一個(gè)坐標(biāo)點(diǎn)相同,這樣多邊形才能形成閉合
      ]
    ]
  }
}

POST /city/_doc
{
  "location": "POLYGON ((100.0 0.0, 101.0 0.0, 101.0 1.0, 100.0 1.0, 100.0 0.0))"
}


地理查詢

{
  "query": {
    "bool": {
      "filter": {
        "geo_shape": {
          "location": {
            "shape": {
              "type": "circle",
              "radius": "10km",
              "coordinates": [
                121.392496,
                31.3
              ]
            }
          }
        }
      }
    }
  }
}

talk is cheap,show me the code:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-427843.html

代碼示例

點(diǎn):
PointBuilder pointBuilder = new PointBuilder(lng, lat);
GeoShapeQueryBuilder shapeQueryCirleBuilder = QueryBuilders.geoShapeQuery("location", pointBuilder).relation(ShapeRelation.CONTAINS);

圓:
CircleBuilder circleBuilder = new CircleBuilder();
circleBuilder.center(lng, lat);
DistanceUnit.Distance distance = new DistanceUnit.Distance(range, DistanceUnit.METERS);
circleBuilder.radius(distance);
GeoShapeQueryBuilder shapeQueryBuilder = QueryBuilders.geoShapeQuery("location", circleBuilder).relation(ShapeRelation.CONTAINS);

多邊形:
CoordinatesBuilder coordinatesBuilder = new CoordinatesBuilder();
List<Location> boundaryPoints = locationForm.getBoundaryPoints();
for (Location location : boundaryPoints) {
    coordinatesBuilder.coordinate(location.getLng().doubleValue(), location.getLat().doubleValue());
}
PolygonBuilder polygonBuilder = new PolygonBuilder(coordinatesBuilder);
GeoShapeQueryBuilder shapeQueryBuilder = QueryBuilders.geoShapeQuery("location", polygonBuilder).relation(ShapeRelation.CONTAINS);

到了這里,關(guān)于elasticsearch之地理位置查詢geo_shape的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 地理空間分析12——地理位置數(shù)據(jù)隱私與安全

    在數(shù)字化時(shí)代,地理位置數(shù)據(jù)成為了眾多應(yīng)用程序和服務(wù)不可或缺的一部分。從導(dǎo)航應(yīng)用到社交媒體,從廣告定位到城市規(guī)劃,地理位置數(shù)據(jù)的應(yīng)用范圍廣泛。然而,這些數(shù)據(jù)的收集和使用也引發(fā)了廣泛的隱私和安全擔(dān)憂。本文將探討地理位置數(shù)據(jù)隱私的挑戰(zhàn)和重要性,并介

    2024年03月19日
    瀏覽(28)
  • 小程序地理位置接口申請(qǐng)

    小程序地理位置接口申請(qǐng)

    申請(qǐng)接口理由: wx.chooseAddress 獲取用戶收貨地址提交理由: 快速定位用戶當(dāng)前位置,獲取省市區(qū)等地址信息,方便用戶提交地址等信息 wx.chooseLocation打開地圖選擇位置接口提交理由: 為了方便用戶能夠快速的獲取地址, 定位用戶位置信息 wx.getLocation獲取當(dāng)前地理位置,速度:

    2024年02月12日
    瀏覽(24)
  • 使用uniapp開發(fā)獲取地理位置

    使用uniapp開發(fā)獲取地理位置

    老板要求做一個(gè)微信小程序,后面又希望能轉(zhuǎn)為app. 所以選擇了uniapp開發(fā). 我的體驗(yàn)和感想就是以后不用uniapp了. 資源不多,學(xué)習(xí)了可能用處也不大.適合外包的干.這里寫一下使用uniapp開發(fā)微信小程序獲取地理位置 基本邏輯是使用uniapp的api首先獲得地理經(jīng)緯度位置等信息(在這之前

    2024年02月07日
    瀏覽(28)
  • Unity 獲取手機(jī)地理位置信息

    在游戲的開發(fā)過(guò)程中,有時(shí)候會(huì)遇到需要獲取玩家位置信息的需求,比如顯示玩家所在的國(guó)家城市等。 有一下方法可以參考: 可以根據(jù)手機(jī)的地區(qū)和語(yǔ)言來(lái)做判斷。 根據(jù)IP來(lái)判斷所處的位置,阿里云啥的都有對(duì)應(yīng)的接口服務(wù)。 根據(jù)GPS來(lái)判斷。 以上方法都各有利弊吧,這里簡(jiǎn)

    2024年02月12日
    瀏覽(19)
  • 通過(guò)ip獲取地理位置信息

    GeoLite2-City.mmdb 文件是 MaxMind 公司提供的一個(gè)免費(fèi)的 IP 地址與城市地理位置映射數(shù)據(jù)庫(kù)文件。它包含了 IP 地址范圍與對(duì)應(yīng)的城市、地區(qū)、國(guó)家、經(jīng)緯度等地理位置信息的映射。這種數(shù)據(jù)庫(kù)文件可以用于識(shí)別訪問(wèn)您的應(yīng)用程序或網(wǎng)站的用戶的地理位置,從而實(shí)現(xiàn)針對(duì)不同地區(qū)的

    2024年02月12日
    瀏覽(20)
  • Unity之獲取用戶地理位置

    Unity之獲取用戶地理位置

    1.1 利用bilibili的api 【未知穩(wěn)定性】 lua代碼 ?1.2 利用baidu api 【配額超限,需要擴(kuò)充配額,需要聯(lián)系官方】 2.1?API: \\\"https://api.ipify.org\\\" 和 心知天氣官網(wǎng)“心知天氣 - 高精度氣象數(shù)據(jù) - 天氣數(shù)據(jù)API接口 - 行業(yè)氣象解決方案” 獲取公網(wǎng)IP 根據(jù)IP獲取地理信息和天氣信息,json反解析

    2024年02月14日
    瀏覽(19)
  • Golang — 根據(jù)IP獲取地理位置信息

    Golang — 根據(jù)IP獲取地理位置信息

    1 ip2region 2 geoip2-golang ip2region 是一個(gè)離線IP地址定位庫(kù)和IP定位數(shù)據(jù)管理框架,10微秒級(jí)別的查詢效率,提供了眾多主流編程語(yǔ)言的 xdb 數(shù)據(jù)生成和查詢客戶端實(shí)現(xiàn)。 特點(diǎn): 是一個(gè)開源的IP地理位置庫(kù)。 標(biāo)準(zhǔn)化的數(shù)據(jù)格式 每個(gè) ip 數(shù)據(jù)段的 region 信息都固定了格式:國(guó)家|區(qū)域|省

    2024年02月14日
    瀏覽(19)
  • ip地址和地理位置有關(guān)系嗎

    在互聯(lián)網(wǎng)時(shí)代,網(wǎng)絡(luò)已經(jīng)成為了人們生活中不可或缺的一部分。而在網(wǎng)絡(luò)通信中,IP地址扮演著非常重要的角色。那么,IP地址和地理位置之間是否有關(guān)系呢?虎觀代理小二二將從以下幾個(gè)方面進(jìn)行探討。 一、IP地址和地理位置的基本概念 首先,讓我們了解一下IP地址和地理位

    2024年02月12日
    瀏覽(21)
  • 【微信小程序地理位置權(quán)限】申請(qǐng)教程

    【微信小程序地理位置權(quán)限】申請(qǐng)教程

    1.微信為進(jìn)一步規(guī)范開發(fā)者調(diào)用涉用戶信息相關(guān)接口或功能,自2022年4月18日開始,將對(duì)地理位置相關(guān)接口實(shí)行準(zhǔn)入開通。如未申請(qǐng),后續(xù)將影響線上小程序相關(guān)功能的使用。 點(diǎn)擊查看公告: 小程序地理位置相關(guān)接口調(diào)整 (qq.com) 1.打開微信公眾平臺(tái) (qq.com),掃碼登錄小程序管

    2024年02月11日
    瀏覽(21)
  • 【Redis】特殊數(shù)據(jù)類型 Geo (地理位置)

    【Redis】特殊數(shù)據(jù)類型 Geo (地理位置)

    除了五中基本的數(shù)據(jù)類型外,Redis還支持兩種特殊的數(shù)據(jù)類型,第一種 Geo (地理位置):用于存儲(chǔ)地理位置相關(guān)的數(shù)據(jù),例如經(jīng)緯度、距離等。第二種 Stream (流):是一個(gè)高級(jí)的列表類型,支持對(duì)列表的批量操作,如添加多個(gè)元素、獲取多個(gè)元素等。 Redis GEO(Geo Redis)是一個(gè)用

    2024年02月15日
    瀏覽(18)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包