使用前,需要您对地点云的存储结构、基础定义有所了解,以便您能更快上手。
基础 - 地点云存储结构
地点云就像一套关系型数据库系统,以表(table)为基本存储单元,开发者可创建多张表,以满足不同类型的数据存储、搜索需要。
表结构(structure) 由 表名、表ID(table_id,用于调用API使用)以及表字段组成
字段分为: 系统字段 和 自定义字段(x field)两类
a) 系统字段为地点云预设,不可更改,包含位置数据必须的名称、坐标信息,及功能性字段,如create_time
b) 自定义字段(x field):用户可根据自己业务需要,创建自字义字段,用于存储自定义数据、以及用于个性化搜索条件。自定义字段需要先设置后使用,通过地点云数据管理台进行设置
地点数据(data) 以JSON结构体现,每条数据为一个对象,对象中的一级属性为系统字段数据,一级对象x下的子对象为自定义字段数据。
数据示例:
{
"id":"5d378ff96ce89813ed5055de",
"ud_id":"b3992",
"title":"河北石家庄正定网点",
"adress":"河北省石家庄正定市",
"location":{
"lat":38.146999,
"lng":114.5868
},
"polygon":"30.638780,114.130858;30.638780,114.131931....",
"tel":"",
"create_time":1532153424,
"update_time":1532153424,
"x":{ //自定义字段
"price":2.66,
"branch_code":"130123"
}
}
数据(字段)定义
如前文所述,每用户可创建多张地点云数据表,而每张表的具体字段结构定义如下。
表中“对应云搜索功能”列出了每个字段可支持的云搜索功能,方便对应,具体见云搜索API文档。
字段 | 类型 | 长度 | 必填 | 说明 | 对应云搜索功能 | |
---|---|---|---|---|---|---|
id | number | 32 | 只读 | 主键/标识,数据创建时自动生成,全库不重复 | 默认可filter,例:filter=id=5d36b87a6ce89813ed439db5 | |
ud_id | string | 64 | – | 即自定义ID(user defined id) ,若您已有库表数据ID或编号,可填入此字段,以便关联管理。唯一性约束:1.可在建表时设置是否启用ud_id的唯一性约束(表创建后不可更改)2.启用唯一性约束后,ud_id值将不可重复,同时将支持通过ud_id进行数据的更新、删除,否则仅可用于搜索筛选 | 默认可filter,但仅支持等于,例:filter=ud_id=100225 | |
title | string | 128 | 必填 | 地点名称 | 默认可keyword文本搜索,例:keyword=中关村 | |
address | string | 256 | – | 地址 | 默认可keyword文本搜索,例:keyword=北四环 | |
location | object | 必填 | 坐标 | 用于周边搜索、矩形范围搜索,例:/search/nearby?location=39,116&radius=5000 | ||
lat | number | 必填 | 纬度 | |||
lng | number | 必填 | 经度 | |||
polygon | string | – | 多边形轮廓坐标串,格式:lat,lng;lat,lng;……限制外接矩形面积小于30万平方公里 (约比广西省稍大) | 可用于围栏搜索匹配(通过坐标查找所在区域),例:/search/contain?location=39,116 | ||
tel | string | 64 | – | 联系电话,多个电话用半角英文分号;分隔 | 支持全字符筛选,如:filter=tel=“63258661” | |
create_time | number | 只读 | 创建时间 | 默认可筛选排序,如:filter=create_time>1563870479 | ||
update_time | number | 只读 | 修改时间 | filter=update_time<1563870479 | ||
province | string | 只读 | 省,系统自动生成 | 区域搜索/search/region?region=北京市海淀区 | ||
city | string | 只读 | 市,系统自动生成 | |||
district | string | 只读 | 区,系统自动生成 | |||
adcode | number | 只读 | 行政区划代码 | |||
_distance | number | 只读 | 距离,单位:米,使用distance函数时会返回该字段 | |||
x | object | – | 自定义字段:1.须先定义后使用,在地点云数据管理台进行设置,也请参阅自定义字段说明2.数据为json结构,仅支持一级,不可嵌套子对象3.最多支持30个自定义字段,其中:a.数值(number)型字段,可设支持筛选排序的支持10个b.字符串(string)型字段,可设支持文本搜索的支持5个 | 文本型关键词搜索示例:keyword=中关村数值型筛选示例:filter=x.price<100 |
地点云数据以JSON数据格式体现,其中一级属性为系统字段,x对象下的子级属性为自定义字段,
地点云数据的完整JSON示例:
{
"id":"5d378ff96ce89813ed5055de",
"ud_id":"1155",
"title":"北京肯德基西单商场店",
"address":"北京市西城区西市场景一层",
"location":{
"lat":66.1541212,
"lng":116.126456
},
"polygon":"30.638780,114.130858;30.638780,114.131931....",
"tel":"010-44452248",
"create_time":1563922425,
"update_time":1563922425,
"_distance":324,
"x":{ //自定义字段
"price":35,
"dianping":250,
"zhuda":"开心乐园餐",
"url":"https://lbs.qq.com/"
}
}
表结构
数据表结构通过JSON方式描述,包括表名称、表注释以及自定义字段结构,其中系统字段如id,title,location等为系统预置,不会在表结构中出现 。 (通过数据管理台可管理表结构, 同时为地点云存储API也提供了表(结构)查询接口供您使用。)
示例&说明:
//以下示例表,有两个自定义字段
{
"table_id":"5d3581dc6ce89813ed******",
//表ID,表的唯一标识,通过API访问数据表时需要使用,表创建后由系统自动生成
"table_name":"连锁店表",
//表名,主要起到备忘、注释的作用,最多支持32个英文字符(16个汉字)
"unique_ud_id":1
/*启用ud_id字段唯一性约束,该功能在建表时设置,不可更改,取值:
0不启用[默认]:ud_id值可为空,可重复,数据更新、删除不可使用用ud_id筛选(云搜索不受影响)
1启用,启用后,ud_id字段必值不可为空,且值必须唯一,数据更新、删除可使用ud_id做为筛选条件*/
"data_count":4, //表中数据条数
"create_time":1563787740, //表创建时间
"update_time":1563789253, //表修改时间
//自定义字段的结构,详细参见下文《自定义字段说明》
"x" : {
"price":{ //字段名即对象名
"type":"number", //字段类型
"default":0, //默认值
"comment":"价格", //字段注释,用于备忘
"is_index":1, //是否为索引字段
},
"description":{
"type":"string",
"default":"",
"is_index":0
}
}
}
自定义字段说明
表结构JSON中的x对象下即为自定义字段的设置,x下每个子对象即为一个自定义字段,其参数属性如下:
限制说明:每张表最多可创建30个自字义字段,其中可设置5个文本字段允许关键词搜索,10个数值字段允许筛选排序(is_index)。
字段属性 | 类型 | 说明 | ||
---|---|---|---|---|
x | object | 自定义字段定义,数据型,每个子对象是一个自定义字段 | ||
x_field_name | object | 对象名即字段名,如 price,格式要求: a) 必须为英文、数字或下划线(第1个字段不能为数字)b) 最多64个字符(中文32个)c) 仅支持英文小写d) 同一张表中的自定义字段不可重名 | ||
type | string | 字段类型,可选值:number:数值(double)型string:字符串型,最大可存储4096个字节数据注:字段创建后类型不可修改 | ||
default | string / number | 字段默认值,缺省时:string型为:””,number型为:0注:若修改默认值,之前已有数据的默认值不会被更新 | ||
is_index | number | 数值(number)型字段,该字段是否允许 filter 筛选与排序,取值:1:允许0:[默认]不允许字符(string)型字段,该字段是否允许 keyword(关键词) 搜索,取值:1:允许0:[默认]不允许注:字段创建后本参数不可修改 | ||
comment | string | 字段注释,便于记忆与识别,最多256个字符(128个中文字符) | ||
create_time | number | 字段创建时间,创建后系统自动生成 | ||
update_time | number | 字段修改时间(指结构,不是数据) |