Ganos支持屬性查詢、id查詢、時空范圍查詢等,本文介紹數據查詢的方式。
配置參數 | 說明 |
URL | /index/:alias/:index/features |
方法 | GET |
URL參數 | alias=[alphanumeric]表示DS名稱。index=[alphanumeric]表示index名稱。q=[alphanumeric]JSON表示的查詢條件。 |
成功信息 | Code: 200 Content: GeoJSON格式的要素集合。 |
失敗信息 | Code: 400,表示需要的參數未指定Content: empty。 |
curl\
'localhost:8080/geoserver/geomesa/geojson/index/:alias/:index/features' \
--get --data-urlencode 'q=JSON格式查詢條件'
HBase Ganos支持的屬性查詢謂詞:
配置參數 | 說明 |
$lt | 小于 |
$lte | 小于等于 |
$gt | 大于 |
$gte | 大于等于 |
以下分別介紹幾種常用的查詢方式:
(1)屬性查詢HBase Ganos屬性查詢通過謂詞運算。
示例1:查詢id=0的要素。
curl \
'localhost:8080/geoserver/geomesa/geojson/index/my_ds/test/features' \
--get --data-urlencode \
'q={
"properties.id":"0"
}'
示例2:查詢name=n1的要素。
curl \
'localhost:8080/geoserver/geomesa/geojson/index/my_ds/test/features' \
--get --data-urlencode \
'q={"properties.name":"n1"}'
示例3:查詢age<30的所有要素。
curl \
'localhost:8080/geoserver/geomesa/geojson/index/my_ds/test/features' \
--get --data-urlencode \
'q={"properties.age":{"$lt":30}}'
(2)空間查詢
示例1:通過外包框BBOX查詢。
q={
"geometry" :
{
"$bbox" : [-180, -90, 180, 90]
}
}
示例2:空間相交(intersection)查詢。
q={
"geometry" : {
"$intersects" : {
"$geometry" : {
"type" : "Point",
"coordinates" : [30, 10]
}
}
}
}
示例3:空間包含(within)查詢。
q={
"geometry" : {
"$within" : { "$geometry" : {
"type" : "Polygon",
"coordinates": [ [ [0,0], [3,6], [6,1], [0,0] ] ]
}}
}
}
示例4:空間包含(contains)查詢。
q={
"geometry" : {
"$contains" : {
"$geometry" : {
"type" : "Point",
"coordinates" : [30, 10]
}
}
}
}
(3)時間查詢
示例1:使用$during謂詞指定時間區間。
curl \
'localhost:8080/geoserver/geomesa/geojson/index/myds/test/features' \
--get --data-urlencode \
'q={"dtg":{"$during":"2018-01-02T08:00:00Z/2018-03-02T10:00:00Z"}}'
示例2:使用$lt(),$gt$lte和$gte。
curl \ 'localhost:8080/geoserver/geomesa/geojson/index/myds/test/features' \
--get --data-urlencode \
'q={"dtg":{"$lt" : "2013-01-02 00:00:00"}}'
(4)組合查詢
AND:創建查詢條件a=5 AND b=6。
{ "a" : 5, "b" : 6 }
OR:創建查詢條件a=5 OR a=6。
{ "$or" : [ { "a" : 5 }, { "b" : 6 } ] }
示例:時空查詢配合屬性查詢。
curl /
'http://localhost:8080/geoserver/geomesa/geojson/index/tdrive_ds/tdrive_index/featu res'
--get --data-urlencode \
'q={
"geometry":{"$bbox":[116.3383,39.8291,116.3384,39.8292]},
"properties.taxi_num":"1131",
"properties.dtg":{"$gt" : "2008-02-08T08:00:00.000+0000"},
"properties.dtg":{"$lt" : "2008-02-08T12:21:16.000+0000"}
}'
文檔內容是否對您有幫助?