代码说明
GeoMesa代码大部分都是对geotools和sfcurve-zorder包的封装
geotools负责Feature,DataStore,ECQL Query,Hints(类似sql中的group by ,having等)
等概念的封装,接口的提供等;sfcurve-zorder负责z曲线的计算
创建连接
—>DataStoreFinder.getDataStore
—>HBaseDataStoreFactory.createDataStore
—>HBaseConnectionPool.getConnection
建表
—>HBaseDataStore.createSchema
—>GeoMesaDataStore.onSchemaCreated
—>HBaseZ3Index.configure
写入
HBaseAppendFeatureWriter.writer
GeoMesaAppendFeatureWriter.writer
GeoMesaFeatureWriter.writerFeature
BaseFeatureIndex
Z2IndexKeySpace ——z曲线信息
真正写入HBase:HBaseFeatureWriter
读取
HBaseDataStore.getQueryPlan
QueryPlanner.profile
HBaseZ2Index.getQueryPlan
BaseFeatureIndex.keySpace.getRange
Z2IndexKeySpace
实际读取HBase:HBaseBatchScan
Z2IndexKeySpace说明
使用的sfcurve-zorder包
https://github.com/locationtech/sfcurve
sfcurve-zorder提供了zorder和hilbert的两种实现,GeoMesa中使用的是zorder