介紹:用于存儲(chǔ)坐標(biāo)信息及快速檢索指定區(qū)域的坐標(biāo)點(diǎn)。比如用于網(wǎng)絡(luò)游戲中檢索附近玩家和NPC。檢索速度與庫(kù)內(nèi)數(shù)據(jù)量關(guān)系不大,主要與需求數(shù)量和距離有關(guān),在1億數(shù)據(jù)中檢索100個(gè)坐標(biāo)用時(shí)不超過(guò)1毫秒。
* 支持2^32個(gè)獨(dú)立的坐標(biāo)庫(kù),用庫(kù)id區(qū)分。**庫(kù)id大于等于零為臨時(shí)數(shù)據(jù),進(jìn)程退出后數(shù)據(jù)丟失**,庫(kù)id小于零為持久數(shù)據(jù)。
* 項(xiàng)id為32位正整數(shù)(0 ~ 4294967296)。
* x,y 為 32位整數(shù)(-2147483648 ~ 2147483647)。
### zx.坐標(biāo)設(shè)置(庫(kù)id,項(xiàng)id,x,y,[時(shí)間]);
設(shè)置或添加坐標(biāo)數(shù)據(jù),并刷新坐標(biāo)時(shí)間,如果不帶時(shí)間參數(shù)則使用當(dāng)前系統(tǒng)時(shí)間,時(shí)間精度為+-10毫秒。
返回值 = [錯(cuò)誤碼];
### zx.坐標(biāo)刪除(庫(kù)id,[項(xiàng)id]);
刪除庫(kù)中的某項(xiàng),如果不帶項(xiàng)id參數(shù)則刪除整個(gè)庫(kù)。
返回值 = [錯(cuò)誤碼];//如果id項(xiàng)不存在或空坐標(biāo)庫(kù),返回錯(cuò)誤碼為 1
### zx.坐標(biāo)讀取(庫(kù)id,項(xiàng)id,[true]);
如果id項(xiàng)不存在,錯(cuò)誤碼為1,如果不帶true參數(shù),返回結(jié)果不包括時(shí)間.
返回值 = [錯(cuò)誤碼,x,y,[時(shí)間]];//
### zx.坐標(biāo)設(shè)取(庫(kù)id,項(xiàng)id,x,y,[時(shí)間]);
設(shè)置或添加坐標(biāo)數(shù)據(jù),并返回原數(shù)據(jù)。如果原數(shù)據(jù)不存在不會(huì)設(shè)置錯(cuò)誤碼,可以通過(guò)時(shí)間是否為零判斷。
返回值 = [錯(cuò)誤碼,原x,原y,原時(shí)間];如果原數(shù)據(jù)不存在不會(huì)設(shè)置錯(cuò)誤碼,返回值為[0,0,0,0]。
### zx.坐標(biāo)項(xiàng)列取(庫(kù)id,起始項(xiàng)id,數(shù)量);
返回值 = [錯(cuò)誤碼,[[id,x,y],[id,x,y],...]];//返回值包括起始項(xiàng)id
數(shù)量不大于10000,需要反方向列取可以設(shè)置為負(fù)數(shù);
### zx.坐標(biāo)區(qū)域(庫(kù)id,x,y,rx,ry,數(shù)量);
檢索x,y周?chē)拇嬖诘膇d項(xiàng),rx,ry 是單向的檢索距離,所以總檢測(cè)面積是 2rx * 2ry。
檢索結(jié)果按與[x,y]的直線(xiàn)距離由小到大排序,數(shù)量不大于10000;
返回值 = [錯(cuò)誤碼,[[id,x,y,距離,時(shí)間],[id,x,y,距離,時(shí)間],...]];
### zx.坐標(biāo)距離(x,y,x2,y2);
計(jì)算兩點(diǎn)之間的距離。
返回值 = [錯(cuò)誤碼,距離];
