指定した場所に出現しているポケモンを調べるライブラリを使ってみた

すでにアプリや Web サービスがあるみたいだけど、ある場所の周辺に現在現れているポケモンを表示するライブラリを使ってみたのでその手順をメモ
[注意]ライブラリの README に「USE AT YOUR OWN RISK !」とあるように、このライブラリを使う場合は自己責任で!

ライブラリは github で入手できる。

とりあえずいつもの nitrous 上で試してみた。
(nitrous の設定については古いけど「Nitrous.IOで Djangoを触ってみて WebIDE便利過ぎると思った!」の説明を参照)
まずは Web IDE を起動して、画面下のコンソールから virtualenv で pokego という名前で環境を構築。

➜  ~  cd code
➜  code  virtualenv --no-site-packages pokego

できたら環境をアクティブにして Python のバージョンを確認。

➜  code  source pokego/bin/activate
(pokego)➜  code  python -V
Python 2.7.6

nitrous では指定しないと 2.7.6 になる。
次に必要なライブラリを pip でインストール。環境構築時に pip は自動的にインストールされている。

(pokego)➜  code  pip install protobuf geopy requests s2sphere

次に github からライブラリをダウンロード&展開して、ディレクトリ名が長いので code に変更。

(pokego)➜  code  cd pokego
(pokego)➜  pokego  wget https://github.com/leegao/pokemongo-api-demo/archive/simulation.zip
(pokego)➜  pokego  unzip simulation.zip
(pokego)➜  pokego  ls
bin  include  lib  local  pokemongo-api-demo-simulation  simulation.zip
(pokego)➜  pokego  mv pokemongo-api-demo-simulation code
(pokego)➜  pokego  ls
bin  code  include  lib  local  simulation.zip

code ディレクトリに入って下記のコマンドを入力

(pokego)➜  cd code
(pokego)➜  code  python main.py -u ****** -p ****** --location "Union Square, San Francisco"

もちろん、-u の後の ****** はユーザ名で -p の後の ****** はパスワード。
ちなみに、受け付けるアカウントはポケモントレーナー倶楽部のものだけ。google のアカウントでは動かない。
問題なければこんな感じで周りにいるポケモンの情報がゲットできる。

[!] Your given location: Union Square, San Francisco, CA 94108, USA
[!] lat/long/alt: 37.7879938 -122.4074374 0.0
[!] login for: ******
[+] RPC Session Token: TGT-2955375-343lFcYFGlxfj ...
[+] Received API endpoint: https://pgorelease.nianticlabs.com/plfe/304/rpc
[+] Login successful
[+] Username: ******
[+] You are playing Pokemon Go since: 2016-07-24 06:25:02
[+] POKECOIN: 0
[+] STARDUST: 0
Within one step of LatLng: 37.7885606156,-122.408499387 (112m NW from you):
    (41) Zubat
    (41) Zubat
    (41) Zubat
(41) Zubat is visible at (37.7885026165, -122.408809132) for 415 seconds (133m NW from you)
(41) Zubat is visible at (37.7889435797, -122.408101143) for 823 seconds (120m NW from you)
(41) Zubat is visible at (37.7879600032, -122.409605613) for 542 seconds (190m W from you)
(95) Onix is visible at (37.7874589481, -122.409782609) for 630 seconds (214m SW from you)
The next cell is located at LatLng: 37.7861784887,-122.408499387. Keep scanning? [Y/n]n

上記サンプルでは場所の入力に “Union Square, San Francisco” と名前で入力したけど、緯度経度の情報でも大丈夫。
とりあえず、入力した場所の周辺ポケモンを表示してみた。
style とか設定していないので格好悪いし、何よりもマーカーが google デフォルトで味気ない…(個人的に使うものだしポケモンアイコンに後で変えよう)

吹き出しには取得できる情報からポケモン名(英語のまま…)と指定した場所からの距離、下のテーブルにはそれに加えてどっちの方向にポケモンがいるかの向きも表示している。
他にも python のコード内では TimeTillHiddenMs という情報も取得できるのだけどそれは表示していない。
後は自分の仕事場の緯度経度を指定して 10分間隔くらいで動かして、レアポケモンが見つかったら iPhone に地図画像と一緒に通知すればダッシュで捕まえに行ける!…かもしれない。(すでに slack で通知してくれるライブラリがあるらしい)

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)