🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
介绍:用于存储坐标信息及快速检索指定区域的坐标点。比如用于网络游戏中检索附近玩家和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); 计算两点之间的距离。 返回值 = [错误码,距离];