たった 3 つの単語で世界のどこにでもある場所を記憶できます。
試してみてください: http://these3words.herokuapp.com/
いくつかの興味深い場所:
このアプリは http://what3words.com/ からインスピレーションを受けて作成されました。
>>> import thesethreewords as these
# the home of particle physics
>>> CERN = (46.232355, 6.055419)
>>> three = these.three_words(CERN)
>>> print three
'turks-yunnan-salant'
>>> these.decode(three)
(46.232335567474365, 6.055419445037842)
These3Words の地図でここがどこにあるかを確認してください。
geohash ライブラリと bottle ライブラリをインストールする必要があります。
$ pip install geohash
$ pip install bottle
地球の表面には3×3メートルの正方形がたくさんあります。それらをわずか 3 単語でエンコードするには長い単語リストが必要となり、その結果、かなりあいまいな単語がリストに含まれることになります。 6 つの単語を覚えなくても大丈夫なら、単語リストははるかに短くなります。 6 単語の単語リストは、素晴らしいヒューマンハッシュ ライブラリから提供されています。人間のコミュニケーションにおいて最大限の明瞭さを実現するために単語が選択されており、次の 3 つの単語リストにある単語よりも馴染みのあるものである必要があります。
>>> six = these.six_words(CERN)
>>> print six
'spaghetti-carolina-kentucky-oscar-iowa-table'
>>> these.decode(six)
(46.232335567474365, 6.055419445037842)
各緯度と経度のペアは 9 文字の geohash に変換されます。これにより、すべての緯度で約 3 メートルの解像度が得られます。次に、ジオハッシュは整数に変換され、単語の文字列としてエンコードされます。
geohash
3 つの単語にエンコードするために使用される単語リストには、ローカル コンピューターの辞書が使用されます。本当にあいまいな単語を削除する試みがいくつか行われていますが、もっと良い可能性があります。 these-3-words
ハッシュをエンコードおよびデコードするときは、同じ単語リストを使用する必要があります。
these-3-words
ハッシュは、近くの場所が同様のthese-3-words
のハッシュを共有するgeohash
のプロパティを共有します。
>>> other_CERN_site = (46.256811, 6.056792)
>>> six = these.six_words(other_CERN_site)
>>> print six
'spaghetti-carolina-kentucky-utah-seventeen-neptune'
>>> these.decode(six)
(46.256797313690186, 6.056792736053467)
もう 1 つの CERN サイトは、地図上にあります。
ファイルserver.py
Google マップの地図上に 3 つの単語で指定された場所を表示できる小さな Web サービスを提供します。
サーバーには bottle.py がインストールされている必要があります。 ./server.py
またはpython server.py
とそれぞれ入力することで、ローカルで実行できます。
@betatim と @kdungs プロダクションによって提供されました