Javascript Geohash-16:如何 情况:

Javascript Geohash-16:如何 情况:,javascript,character-encoding,binary,base,geohashing,Javascript,Character Encoding,Binary,Base,Geohashing,我有使用系统创建的JavaScript代码 var BASE32_code=“0123456789bcdefghjkmnpqrstuvwxyz”; var BASE32_代码_DICT={}; 对于(变量i=0;i4位移动,我们需要额外的字符才能达到相同的精度(5位/char*9chars=45位,因此我们在16进制中至少需要12个字符才能达到相同的精度(4位/char*12chars=48位,因此我们实际上可以通过该字符计数获得一些额外的精度) 因此,您的代码片段将变成: var BASE

我有使用系统创建的JavaScript代码

var BASE32_code=“0123456789bcdefghjkmnpqrstuvwxyz”; var BASE32_代码_DICT={}; 对于(变量i=0;i中间){ hash_value=(hash_value所以我认为您只需要更改三件事:

  • 字母表定义(
    BASE32\u代码
    在代码段中),改为使用基16字符集
  • 写入字符前要收集的位数(使用4而不是5)
  • 要输出的总字符数(由于每个字符承载的信息较少,因此需要更多字符来承载相同的数据)
由于我们从每字符5->4位移动,我们需要额外的字符才能达到相同的精度(5位/char*9chars=45位,因此我们在16进制中至少需要12个字符才能达到相同的精度(4位/char*12chars=48位,因此我们实际上可以通过该字符计数获得一些额外的精度)

因此,您的代码片段将变成:

var BASE16_code=“0123456789abcdef”;//将
if(bits==5)
(base32为5位)更改为
if(bits==4)
(BASE16为4位)…并输出字母表(
base32_code
)。