HBase Ganos的REST接口采用GeoJson形式来描述时空数据,本文对GeoJson形式进行描述说明。
一个典型的时空“点”数据(可理解为轨迹点)格式如下:
{
"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: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])
说明 有关GeoJson格式详情请参见GEOJSON RFC。