What3Idolsなるものを作った
2020年12月23日
この記事はアイドルマスター Advent Calendar 2020 の 23 日目の記事です。
こんにちは、.ごっちです。
2020/12/05 にアイマスハッカソン 2020 ONLINE!というイベントがありました。
去年はスタッフ業をしていたんですが、今年は一般参加 P として参加しました。
アイマスハッカソンでミリシタの UI を作ったお話 *この記事はアイドルマスター Advent Calendar 2019 の 8 日目の記事です。*medium.com
つくったもの
What3Idols です。
(まだ本番サーバにデプロイしていません。)
使用した技術
-
フロント: Nextjs + Bulma
-
DB: SQLite3
実際に本番リリースするときは PostgreSQL にする見込みです。
プロダクトの概要
アイドルマスターシリーズに登場するアイドル(354 人(本当は 332 人))の中から 3 人選択したらユニークな緯度経度が帰ってきて GoogleMap にピンが刺さるというやつです。 アイドルの名前は IM@Sparql のクエリをたたいて抽出しました。 im@sparql 広がるアイマスワールドをオープンデータ化 Web やアプリから SPARQL で検索・利用可能なエンドポイントsparql.crssnky.xyz アイドルマスターシリーズに登場するアイドルとスタッフ by yougoto - ☆ ピコピコプラネット ☆ SPACE *☆ ピコピコプラネット ☆ SPACE は、SPARQL クエリの共有サイトです。*space.pikopikopla.net
サービスの元ネタは What3Words になっています。 The simplest way to talk about location *Every 3 metre square of the world has been given a unique combination of three words. Used for e-commerce and delivery…*what3words.com
表示範囲は日本の東西南北のそれぞれの緯度経度で囲まれば部分になります。東西/南北に 0.0107 度ずつ区切るようにしているので、だいたい 1km×1km になっています。(What3Words は世界を 3 メートル四方の正方形に区切りにしています。) このことから位置情報の数は 7268130 レコードあります。354 人から 3 人選ぶ組み合わせの数は 354C3 = 7331104 通りあるのでデータ量としては十分です。
ただ下図を見てもらえればわかりますが、全体の 8 割以上が海です。したがって、せっかく 3 人のアイドルを選択したとしても、ほとんど海にピンがささるという結果になります。。
昨日のアイマスハッカソンで作ったやつ。データ700万件生成が完了したので試しにいろいろやってみたら日本の陸地にピンがなかなか刺さらない。。 pic.twitter.com/eipAMSHpDp
— .ごっち (@gggooottto) December 6, 2020
今後
本当は 332 人なので 332C3 = 6044060 通りなので正しいデータで作り直します。(Sparql のクエリを間違えてました) 1km 四方では位置情報のピンポイントな特定にはあまり使えないので、What3Words のように最大でも 10m 四方に収まるようなデータ情報にしたいと考えてます。 10m 四方ためには当然 332C3 通りでは当然足りないので、332C5 通りのデータを用意する必要がありそうです。(まだ計算していないので過剰なのか不足なのかわかりませんが。。) 緯度経度からアイドルの組み合わせが帰ってくる API を作りたいです。 332C3 = 6044060 通り (332C5 = 32611330136(326 億)通り)程度のレコードを保存できる/呼び出せる程度のサーバーを用意したい。。。。💸
参考
-
What3Words について: https://what3words.com/ja/about-us/
-
緯度経度の 2 点から距離を計算: https://s-giken.info/distance/distance.php
-
IM@Sparql: https://sparql.crssnky.xyz/imas/
-
☆ ピコピコプラネット ☆ SPACE: https://space.pikopikopla.net/