数据API
用于对用户私有数据进行维护和应用。GeoHey平台支持各种类型的数据,包括Excel、CSV、SHP、KML/KMZ、GeoJson/TopoJson、GPX。用户在GeoHey平台上传以上任意类型的数据以后,即可通过数据API增加、查询、编辑、删除数据记录。GeoHey可以作为用户的空间数据云基础设施,提供空间数据管理能力,并保证数据安全。
API地址
API地址大多用于在SDK中进行设置,由SDK帮助生成以下各种操作的请求地址并调用。Notes:{dataUid}为数据的id号
请求方法
API同时支持GET和POST方法访问,大多数情况建议使用POST方法;但是在基于浏览器直接调用的应用中,由于涉及跨域访问,所以只能采用GET方法请求,此时会受到GET请求长度的限制,在开发中需要注意。
如果开发浏览器应用时遇到GET方法不能满足要求的情况,需要在应用的同一域名下部署一个转发服务,将API的访问形式从浏览器直接调用转为服务器调用。
访问凭证
API的访问凭证通过指定URL的参数ak指定,无论是GET还是POST请求都需要直接将ak参数直接附加于调用的URL上,如:http://geohey.com/s/data/{dataUid}/query?ak=...
响应格式与错误代码
响应的一般格式为:
{
"code":<响应代码>,
"data":<响应数据>
}
错误代码有:
响应代码 |
代码说明 |
0 |
正常响应,无错误 |
601 |
没有通过API访问认证 |
602 |
没有操作的权限 |
603 |
API调用达到限额 |
604 |
IP被禁用 |
605 |
Access Key被禁用 |
611 |
API调用的必要参数缺失 |
612 |
参数无效 |
701 |
对象不存在 |
702 |
查询字段无索引 |
703 |
字段不存在,添加或更新数据时,如果包含不存在的字段时使用 |
704 |
查询字段不存在,查询数据时使用 |
705 |
返回字段不存在,查询数据时使用 |
706 |
操作失败 |
707 |
不支持输入坐标系,查询数据时使用 |
708 |
不支持输出坐标系,查询数据时使用 |
709 |
不支持该数据进行坐标转换,查询数据时使用 |
用户数据
获取数据列表
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用 |
search |
根据输入内容对数据集进行过滤,如果为空则按照时间降序返回limit个的数据记录 |
geometryType |
用于对空间数据类型进行过滤,支持三个值:point(点,表示Point或MultiPoint),polyline(线,表示Polyline或MultiPolyline),polygon(多边形,表示Polygon或MultiPolygon) |
page |
获取数据集合分页的页数,默认为第0页 |
limit |
返回记录的个数,默认为10个 |
- 正确响应数据格式:
-
JSON对象格式,其中items表示返回的数据列表
-
{
"code": 0,
"data": {
"hasNext": true,
"page": 0,
"items": [
{
"uid": "1acdb038416e4162bcec4b344965570f",
"name": "房地产住宅小区数据",
"geometryType": "pg",
"count": 5287,
"updatedAt": 1431893651000
},
...
]
}
}
创建
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
name |
数据的名字 |
geometryType |
空间数据类型:pt(点),mpt(多点),pl(线),mpl(多线),pg(多边形),mpg(多多边形) |
fields |
数据的字段列表,格式为json数组,包含name(名称,必选)、type(字段类型, text|integer|long|double|boolean|timestamp,必选)、indexed(是否创建索引,true|false,可选,默认为false。只有建立索引的字段,才允许作为过滤条件在查询时使用。如果在创建数据时,字段未建立索引,可以在数据页面手动创建索引。),见下面示例。 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用。 |
- fields参数示例:
-
[{
"name": "device_id",
"type": "long",
"indexed": true
},
{
"name": "user_name",
"type": "text"
},
{
"name": "created_at",
"type": "timestamp"
}]
- 正确响应数据格式:
-
返回新创建数据的uid
-
{
"code": 0,
"data": {
"uid": "c10c4bdf1a5940b6bd4d20c5bb5b059b"
}
}
获取字段列表
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用 |
- 正确响应数据示例:
-
indices指该字段已有索引。"default"指缺省方式创建的索引;"fti"指全文索引。
-
{
"code":0,
data:data: [{
{
name: "NAME",
indices: ["default","fti"],
type: "text"
},
{
name: "TYPE",
indices: ["default"],
type: "text"
}
]
}
根据ID获取记录
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用 |
outFields |
需要输出的字段,JSON数组格式,例如:['NAME', 'TYPE'],不指定表示输出所有字段 |
returnGeometry |
是否返回几何图形数据,默认为true |
format |
返回数据的格式,默认使用GeoHey数据格式。可以设置为geojson,返回geojson格式数据。 |
outSR |
返回数据的坐标系,默认wm-gcj02。支持的值包括:gcj02,表示经纬度坐标(带中国偏移);wm-gcj02,表示互联网地图投影坐标(带中国偏移);bd09,表示百度经纬度坐标系。 |
- 正确响应数据格式:
-
JSON对象格式,其中geom字段表示几何图形,attrs字段表示属性
-
{
"code": 0,
"data": {
"id": 1,
"attrs": {
"NAME": "麦当劳"
},
"geom": [
548.2924999967217,
-946.3152000010014
]
}
}
查询
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用 |
where |
过滤满足某个条件的对象,例如:NAME='麦当劳' |
searchWords |
指定JSON格式的搜索词列表,如有全文检索字段,可指定切分好的词组进行检索,如:['北京', '停车', '场'] |
geometry |
过滤在某个几何形状以内的对象,例如:[540, -950, 550, -940] |
distance |
缓冲半径。对geometry做缓冲,查询缓冲区域内的数据。单位为米。 |
sortField |
指定排序的字段 |
sortType |
指定排序的方式,默认为DESC,也可设置为ASC |
offset |
获取结果的偏移,多用于结果分页,例如取值10,表示从查询到的第11个对象开始输出 |
limit |
限制返回结果的数量,例如取值100,表示最多返回查询到的100个对象,该值最大为1000 |
outFields |
需要输出的字段,JSON数组格式,例如:['NAME', 'TYPE'],不指定表示输出所有字段 |
returnGeometry |
是否返回几何图形数据,默认为true |
inSR |
用于使用geometry参数作为输入指定其坐标系,默认wm-gcj02。支持的坐标系包括:gcj02,表示经纬度坐标(带中国偏移);wm-gcj02,表示互联网地图投影坐标(带中国偏移);bd09,表示百度经纬度坐标系;wgs84,表示未经偏移的经纬度坐标。 |
outSR |
查询结果中空间数据使用的坐标系,默认为wm-gcj02。支持的坐标系包括:gcj02,表示经纬度坐标(带中国偏移);wm-gcj02,表示互联网地图投影坐标(带中国偏移);bd09,表示百度经纬度坐标系。 |
format |
返回数据的格式,默认使用GeoHey数据格式。可以设置为geojson,返回geojson格式数据。 |
- 正确响应数据格式:
-
JSON对象格式,其中fields字段表示所有返回的属性字段,features字段表示返回的对象数组
-
{
"code": 0,
"data": {
"geometryType": "Point",
"fields":["NAME"],
"features":
[
{
"id": 1,
"attrs": {
"NAME": "麦当劳"
},
"geom": [
548.2924999967217,
-946.3152000010014
]
},
{
"id": 2,
"attrs": {
"NAME": "富隆酒坊"
},
"geom": [
542.7320000007749,
-943.3264999985695
]
}
]
}
}
添加
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用 |
feature |
需要添加的对象,JSON数组格式 |
sr |
输入数据的坐标系,默认为wm-gcj02。支持的坐标系包括:gcj02,表示经纬度坐标(带中国偏移);wm-gcj02,表示互联网地图投影坐标(带中国偏移);bd09,表示百度经纬度坐标系;wgs84,表示未经偏移的经纬度坐标。 |
- feature参数示例:
-
{
"geom": [116.39, 39.9],
"attrs": {
"label": "北京"
}
}
- 正确响应数据格式:
-
JSON格式,添加成功对象
-
{
"code": 0,
"data":
{
"id": 100,
"geom": [116.39, 39.9],
"attrs": {
"label": "北京"
}
}
}
删除
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用 |
- 正确响应数据格式:
-
被删除数据的JSON格式,data部分只包含被删除数据的id
-
{
"code": 0,
"data": {
"id": "101"
}
}
更新
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用 |
feature |
需要更新的对象,JSON格式。注意,本对象的主键由id参数指定,而非本对象的id属性指定 |
sr |
输入数据的坐标系,默认为wm-gcj02。支持的坐标系包括:gcj02,表示经纬度坐标(带中国偏移);wm-gcj02,表示互联网地图投影坐标(带中国偏移);bd09,表示百度经纬度坐标系;wgs84,表示未经偏移的经纬度坐标。 |
- feature参数示例:
-
{
"geom": [0, 0],
"attrs": {
"label": "Unknown"
}
}
- 正确响应数据格式:
-
JSON格式,更新后的对象。
-
{
"code":0,
data:{
"id": 1
"geom": [0, 0],
"attrs": {
"label": "Unknown"
}
}
}
批量更新
请求地址
- 请求参数:
-
参数名(粗体为必需参数) |
参数说明 |
callback |
定义用于浏览器跨域访问时的回调函数名,一般在浏览器应用中使用 |
features |
需要更新的对象数组,JSON格式 |
sr |
输入数据的坐标系,默认为wm-gcj02。支持的坐标系包括:gcj02,表示经纬度坐标(带中国偏移);wm-gcj02,表示互联网地图投影坐标(带中国偏移);bd09,表示百度经纬度坐标系;wgs84,表示未经偏移的经纬度坐标。 |
- features参数示例:
-
[
{
"id": 1,
"attrs": {
"NAME": "麦当劳"
},
"geom": [
548.2924999967217,
-946.3152000010014
]
},
{
"id": 2,
"attrs": {
"NAME": "富隆酒坊"
},
"geom": [
542.7320000007749,
-943.3264999985695
]
}
]
- 正确响应数据格式:
-
JSON格式,更新后的对象。
-
{
"code":0,
"data":[
{
"id": 1
"code": 0 // 表示成功
},{
"id": 2
"code": 706 // 表示失败
}
]
}