Closed cognitom closed 6 years ago
Facebookほかでもらったアイデア
int,float,floatで12 * n byteのバイナリ列にしてzlibとかで圧縮するとかでしょうか
バイナリ列として扱うのが、やはり良さそうですね。モダンブラウザならTyped Arrayが使えるようなので、16bit, 32bit, 32bitのバイナリ列にしてみようかと。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays
現在、perfect-hash
ブランチにて114MBまで減らしました。
...が、辞書にない住所が来た場合にNot Foundにならない問題発生中。マージできるのはしばらく先になりそうです。
ひとまず、ハッシュ関数はそのままにして、ファイル形式をバイナリに変更したv0.2.0をリリースします。全体で137MBまでは削減できました。 https://www.npmjs.com/package/tokoro
GitHubにはまだ上げていないものの、市区町村版で約1500ファイル、計160MBに及ぶ。現在のところ200MBほど。ダウンロードした元のデータ(1.34GB)に比べれば少ないものの、まだまだ減らしたいです。復号スピードとの兼ね合いですが、妙案があればぜひ。現状はこんな感じ。
を↓のように。住所は数値ハッシュにして、緯度経度とともに94進数で符号化。