HBase Ganos的REST接口采用GeoJson形式来描述时空数据,详细可参考GEOJSON RFC

一个典型的时空"点"数据(可理解为轨迹点)格式如下:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands",
	"dtg": 1536041936000,
	"id":  "1"
  }
}

整个数据可分为三部分:

  • 时间数据:作为属性信息保存在properties.dtg中,示例中为ms级别的时间戳(13位整数)
  • 空间数据:geometry.type表示该空间数据为"点"数据,geometry.coordinates为该"点"的经纬度坐标;
  • 其他属性信息:保存在properties中,如properties.name、properties.id,表示这个点的属性信息

GeoJson库

为了方便的生成GeoJson串,可使用通用的GeoJson库

  • Java库 geojson-jackson:https://github.com/opendatalab-de/geojson-jackson 基本的使用方式为:
FeatureCollection featureCollection = new FeatureCollection();
featureCollection.add(new Feature());

String json= new ObjectMapper().writeValueAsString(featureCollection);
  • python

使用如下语句引入geojson包:

	pip install geojson

基本使用方式为:

	
	point_feature = Feature(id="1",geometry=Point((1.6432, -19.123)),properties={"id":"1","dtg":1536041936000,"name": "Dinagat Islands"})
	
	polygon_feature = Feature(id="my_feature2",geometry=Polygon([(0,0),(0,1),(1,1),(1,0),(0,0)]),properties={"id":"2","dtg":1536041936000,"name": "Dinagat Islands"})
	
	feature_collection = FeatureCollection([point_feature,polygon_feature])