cognitom / tokoro

住所緯度経度変換ライブラリ (ジオコーディング)
http://cognitom.github.io/tokoro/
94 stars 4 forks source link

データサイズを減らしたい #4

Closed cognitom closed 6 years ago

cognitom commented 9 years ago

GitHubにはまだ上げていないものの、市区町村版で約1500ファイル、計160MBに及ぶ。現在のところ200MBほど。ダウンロードした元のデータ(1.34GB)に比べれば少ないものの、まだまだ減らしたいです。復号スピードとの兼ね合いですが、妙案があればぜひ。

現状はこんな感じ。

東京都世田谷区粕谷一丁目25 35.662696 139.614003

を↓のように。住所は数値ハッシュにして、緯度経度とともに94進数で符号化。

pA$' y'E k)XB
cognitom commented 9 years ago

Facebookほかでもらったアイデア

ukyo commented 9 years ago

int,float,floatで12 * n byteのバイナリ列にしてzlibとかで圧縮するとかでしょうか

cognitom commented 9 years ago

バイナリ列として扱うのが、やはり良さそうですね。モダンブラウザならTyped Arrayが使えるようなので、16bit, 32bit, 32bitのバイナリ列にしてみようかと。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays

cognitom commented 9 years ago

現在、perfect-hashブランチにて114MBまで減らしました。

...が、辞書にない住所が来た場合にNot Foundにならない問題発生中。マージできるのはしばらく先になりそうです。

cognitom commented 9 years ago

ひとまず、ハッシュ関数はそのままにして、ファイル形式をバイナリに変更したv0.2.0をリリースします。全体で137MBまでは削減できました。 https://www.npmjs.com/package/tokoro