本篇将Geomesa+Hbase整体4+1架构图 放出, 仅供参考;
场景视图:
物理视图:
开发视图:
流程视图(读写矢量数据):
写数据:
var sft = SimpleFeatureTypes.createType("alterschema", "name:String:index=true,age:Int,dtg:Date,*geom:Point:srid=4326")
ds.createSchema(sft)
sft = ds.getSchema("alterschema")
val feature = ScalaSimpleFeature.create(sft, "0", "name0", 0, "2018-01-01T06:00:00.000Z", "POINT (40 55)")
WithClose(ds.getFeatureWriterAppend(sft.getTypeName, Transaction.AUTO_COMMIT)) { writer =>
FeatureUtils.write(writer, feature, useProvidedFid = true)
写入数据流程:
读取
读取示例代码
var filters = Seq(
"name = 'name0'",
"bbox(geom,38,53,42,57)",
"bbox(geom,38,53,42,57) AND dtg during 2018-01-01T00:00:00.000Z/2018-01-01T12:00:00.000Z",
"IN ('0')"
).map(ECQL.toFilter)
forall(filters) { filter =>
val reader = ds.getFeatureReader(new Query(sft.getTypeName, filter), Transaction.AUTO_COMMIT)
SelfClosingIterator(reader).toList mustEqual Seq(feature)
}
ds.stats.getCount(sft, exact = true) must beSome(1L)
读取流程:
数据存储视图:
以上就是通过翻阅Geomesa+Hbase的矢量地物类读写总结的基本架构4+1图