[PMGO] PokemonGo-Map做自己的寶可夢雷達2
寫完教學後又過了幾天,不知道有多少的朋友開始動手做自己的寶可夢雷達了呢
上一篇最後寫到 I have a dream
我希望的是 我們有機會能做成一個全台灣的寶可夢雷達,這個夢想不是很棒嘛!
但要怎麼做到呢,讓我們從今天的資料庫篇開始說起吧!
延續前篇,你應該已經完成在電腦上架起寶可夢雷達,並可用網頁或iphone的方式查詢
http://imgur.com/a/QpH0h
有自己動手做的朋友會發現,不管是使用網頁或手機的方式連到
你申請的帳號.ddns.net:5001或5002或5003查看雷達
都可以同時看到三筆從5001-5003雷達所掃到的資料
因此我們把這個概念延伸到資料庫上
只要把所有雷達的資料都存到同一台資料庫上,越多人分享,能看到的範圍也會越大
最終是有可能完成全台灣的寶可夢雷達的!
我們的資料庫架構如下圖
http://imgur.com/a/45dpv
總共有com1/com2/com3三台電腦負責收集資料,一台com4電腦負責資料庫與雷達網頁
這樣的架構只要擴充收集資料的電腦數量便可以收集到更大的範圍,也方便維護
相關下載連結,今天只有一個
(請到 控制台->系統 裡面檢查系統類別是32位元或是64位元作業系統並下載配合的版本)
MariaDB
https://downloads.mariadb.org/mariadb/10.1.17/
1.先到com4,要安裝資料庫的電腦上開始安裝mariadb
中間進行到一半時要輸入資料庫root的密碼(待會會用到)
http://imgur.com/a/RURq1
2.完成安裝後,執行MySQL Client
http://imgur.com/a/ZrEIW
輸入root密碼後,輸入下列指令(最後面的;不能省略)
(資料庫名稱pokemongomapdb,使用者dbuser,使用者密碼dbpw)
CREATE DATABASE pokemongomapdb;
CREATE USER 'dbuser'@'%' IDENTIFIED BY 'dbpw';
GRANT ALL PRIVILEGES ON pokemongomapdb . * TO 'dbuser'@'%';
exit
到這邊就已經把資料庫建立完成了
3.接下來我們到com1/com2/com3的電腦上,到PokemonGo-Map\config的資料夾內
編輯config.ini讓它們未來要把資料寫入資料庫(請記得存成ANSI格式)
原本下面的設定
# db-type:
# db-host:
# db-name:
# db-user:
# db-pass:
# db-port:
改為以下內容並存檔
db-type:mysql
db-host:com4.ddns.net
db-name:pokemongomapdb
db-user:dbuser
db-pass:dbpw
db-port:3306
4.關閉正在跑的PokemonGoMap程式(使用ctrl+c或直接點視窗右上的X)
5.重新執行PokemonGoMap,檢查是否可正常登入資料庫,如果失敗會跳出一堆錯誤訊息
請重新檢查前面的步驟是否有漏做的
6.到com4,我們剛剛有說要使用com4做雷達網頁但不負責掃描,因此它的指令修改如下
cd C:\PokemonGo-Map
python runserver.py -l "22.626286, 120.364606" -os -H 0.0.0.0 --locale zh_tw
-P 80 -fl -nsc
(上面兩行併成一行)
參數說明:(可使用 python runserver.py --help 得到更多說明)
-l "X, Y":帳號登入座標,可使用Google map點選位置,地圖中間下方就會出現經緯度
-os:只開啟網頁服務,不負責掃描
-H 0.0.0.0:允許對外服務
--locale zh_tw:地圖上點選寶可夢會出現中文名稱
-P 80:使用port 80,使用者在瀏覽器直接打 http://com4.ddns.net 即可開啟網頁
-fl:固定掃描的位置,不可移動
-nsc:網頁使用者無法調整掃描設定
7.開啟com1/com2/com3的5001-5003網頁,看是否正常掃描並可在網頁看到寶可夢
8.開啟com4的網頁,看是否可在網頁看到com1/com2/com3所掃描到的資料
完成!你現在可以使用多台電腦並整合資料庫到你自己的寶可夢雷達上了!
最後我把一些大家可能會問的問題整理一下:
1.我照上面的方法做還是不行耶?有沒有其他參考資料
請參考官方文件 https://pgm.readthedocs.io/en/develop/extras/mysql.html
2.我沒有那麼多台電腦呀,你寫這些有什麼用?
現在有很多業者推出雲端主機服務,有些更提供免費試用的功能,可以去申請試用
當然也很多雲端主機被IP BAN了,帳號可以正常登入但卻掃不到任何寶可夢
因此在雲端主機建好後,可以用瀏覽器開啟https://pgorelease.nianticlabs.com/plfe/
如果出現Error403就表示這個雲端主機只能拿來做雷達網頁或資料庫服務而無法收集資料
3.原本的雷達網頁是英文的,我可以改成中文嗎?
只要修改兩個地方的檔案就可以囉(搜尋你要改的字串改成中文即可)
C:\PokemonGo-Map\templates\map.html
與
C:\PokemonGo-Map\static\dist\js\map.min.js
http://imgur.com/a/u8u9B
4.我的雲端主機選擇Win2012,結果在pip install -r requirements.txt的時候
出現mt.exe錯誤,該怎麼辦?
這是因為Win2012沒有內建.NET Framework 3.5的關係
但是你在Win2012的工作站管理員直接安裝.NET Framework 3.5
又會跳出找不到來源檔的錯誤訊息,可參考連結解決(開啟gpedit.msc後依照步驟修改)
http://ithelp.ithome.com.tw/questions/10149924
5.你寫這麼多,也不會有人這麼好心出來分享的啦
其實我也知道應該不會有人免費提供全台寶可夢雷達這樣的服務
但是知道技術上能做到,而且整合起來其實也並不困難
就很想拋磚引玉,分享自己學到的一點小東西,只要有千分之一的人願意去嘗試
能幫助到這樣的人我就很滿足了
6.你寫這麼多,其實我直接End了,可以一句話重點嗎?
http://pokeget.ddns.net
登入帳號密碼都是ptt,試試看吧,稱到流量爆掉為止,謝謝大家~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.79.7
※ 文章網址: https://www.ptt.cc/bbs/PokeMon/M.1472826685.A.B35.html
※ 編輯: windgo (36.237.79.7), 09/02/2016 22:36:53
推
09/02 22:35, , 1F
09/02 22:35, 1F
噓
09/02 22:40, , 2F
09/02 22:40, 2F
→
09/02 22:40, , 3F
09/02 22:40, 3F
推
09/02 22:45, , 4F
09/02 22:45, 4F
推
09/02 22:47, , 5F
09/02 22:47, 5F
推
09/02 22:57, , 6F
09/02 22:57, 6F
推
09/02 23:00, , 7F
09/02 23:00, 7F
推
09/02 23:03, , 8F
09/02 23:03, 8F
噓
09/02 23:14, , 9F
09/02 23:14, 9F
噓
09/02 23:26, , 10F
09/02 23:26, 10F
噓
09/02 23:33, , 11F
09/02 23:33, 11F
噓
09/02 23:33, , 12F
09/02 23:33, 12F
→
09/02 23:40, , 13F
09/02 23:40, 13F
→
09/02 23:54, , 14F
09/02 23:54, 14F
噓
09/02 23:59, , 15F
09/02 23:59, 15F
推
09/03 00:07, , 16F
09/03 00:07, 16F
推
09/03 00:47, , 17F
09/03 00:47, 17F
推
09/03 00:47, , 18F
09/03 00:47, 18F
推
09/03 01:00, , 19F
09/03 01:00, 19F
噓
09/03 01:33, , 20F
09/03 01:33, 20F
推
09/03 04:18, , 21F
09/03 04:18, 21F
→
09/03 07:42, , 22F
09/03 07:42, 22F
推
09/03 08:20, , 23F
09/03 08:20, 23F
噓
09/03 08:48, , 24F
09/03 08:48, 24F
推
09/03 08:58, , 25F
09/03 08:58, 25F
推
09/03 09:40, , 26F
09/03 09:40, 26F
推
09/03 10:21, , 27F
09/03 10:21, 27F
→
09/03 11:08, , 28F
09/03 11:08, 28F
→
09/03 11:08, , 29F
09/03 11:08, 29F
噓
09/03 11:32, , 30F
09/03 11:32, 30F
推
09/03 13:32, , 31F
09/03 13:32, 31F
→
09/03 13:35, , 32F
09/03 13:35, 32F
→
09/03 13:35, , 33F
09/03 13:35, 33F
推
09/03 15:21, , 34F
09/03 15:21, 34F
※ 編輯: windgo (36.237.79.7), 09/03/2016 17:21:42
→
09/03 19:51, , 35F
09/03 19:51, 35F
推
09/05 14:51, , 36F
09/05 14:51, 36F