介绍:用于存储坐标信息及快速检索指定区域的坐标点。比如用于网络游戏中检索附近玩家和NPC。检索速度与库内数据量关系不大,主要与需求数量和距离有关,在1亿数据中检索100个坐标用时不超过1毫秒。
* 支持2^32个独立的坐标库,用库id区分。**库id大于等于零为临时数据,进程退出后数据丢失**,库id小于零为持久数据。
* 项id为32位正整数(0 ~ 4294967296)。
* x,y 为 32位整数(-2147483648 ~ 2147483647)。
### zx.坐标设置(库id,项id,x,y,[时间]);
设置或添加坐标数据,并刷新坐标时间,如果不带时间参数则使用当前系统时间,时间精度为+-10毫秒。
返回值 = [错误码];
### zx.坐标删除(库id,[项id]);
删除库中的某项,如果不带项id参数则删除整个库。
返回值 = [错误码];//如果id项不存在或空坐标库,返回错误码为 1
### zx.坐标读取(库id,项id,[true]);
如果id项不存在,错误码为1,如果不带true参数,返回结果不包括时间.
返回值 = [错误码,x,y,[时间]];//
### zx.坐标设取(库id,项id,x,y,[时间]);
设置或添加坐标数据,并返回原数据。如果原数据不存在不会设置错误码,可以通过时间是否为零判断。
返回值 = [错误码,原x,原y,原时间];如果原数据不存在不会设置错误码,返回值为[0,0,0,0]。
### zx.坐标项列取(库id,起始项id,数量);
返回值 = [错误码,[[id,x,y],[id,x,y],...]];//返回值包括起始项id
数量不大于10000,需要反方向列取可以设置为负数;
### zx.坐标区域(库id,x,y,rx,ry,数量);
检索x,y周围的存在的id项,rx,ry 是单向的检索距离,所以总检测面积是 2rx * 2ry。
检索结果按与[x,y]的直线距离由小到大排序,数量不大于10000;
返回值 = [错误码,[[id,x,y,距离,时间],[id,x,y,距离,时间],...]];
### zx.坐标距离(x,y,x2,y2);
计算两点之间的距离。
返回值 = [错误码,距离];