あいまいな店名で地図を引くと、日本の真ん中の静岡が返る:チェーン名を並べず、Google 自身の答えで判定した

English version

トレカダッシュ 開発の記録 / 2026年8月

iOS アプリ「トレカダッシュ」には、店の位置を地図に出して、近い順に並べる機能があります。「位置情報が、静岡になる」という報告が来ました。店の位置は、店の名前を Google の地図の検索(Places API)に渡して、座標を取っています。

原因は、あいまいな店名で問い合わせると、Google が、日本全体の真ん中(静岡と愛知)を返すことでした。この記事は、その実測と、「チェーン名を並べない」直し方の記録です。

この記事は、2026 年 8 月 25 日の作業の記録から書いています。

実測:あいまいな名前の答えは、静岡と愛知

検索には、「日本全体の矩形」を、位置の手がかり(locationbias)として渡しています。名前があいまいで、決め手が無いと、Google は、その矩形の真ん中を返します。それが、静岡と愛知です。API で実測しました。

問い合わせた名前Google の答え
ヤマダデンキヤマダデンキ テックランド浜松本店(静岡県)
サンエー㈱サンエー化研 掛川工場(静岡県)
ホビーステーショントレカステーション豊橋店(愛知県)
ブックオフBOOKOFF 掛川店(静岡県)
晴れる屋晴れる屋 静岡店(静岡県)
おむすびお米とおむすび むらせ 浜松広沢店(静岡県)

「サンエー」は、小売のチェーンのことでしたが、答えは、同じ名前の、別の会社の工場でした。

直し方:チェーン名を並べず、Google 自身の答えで判定する

「あいまいなチェーン名の一覧」を作る方式は、採りませんでした。新しいチェーンが増えるたびに、再発します。代わりに、Google が返した答え自身で、信用できるかを判定する関数(geocodeMatchIsTrustworthy)を作りました。

  1. 問い合わせた名前が、返ってきた店名の頭でしかなく、残りが支店名なら、不採用。(ヤマダデンキ → …テックランド浜松本店)「店」が付いただけなら、同じ店。
  2. 店名に、支店の手がかり(〇〇店、館、モール…)があれば、従来どおり採用。
  3. 返ってきた店名が、問い合わせた名前と同じ、または、その一部なら採用。(カードショップクラクラ、ゲームショップ プラスアルファ)逆向きは採用しない。(サンエー ⊂ ㈱サンエー化研は、別の会社。)
  4. それ以外は、店名と住所が 2 文字以上重なっているかで判定。(池袋、戸塚、札幌、高田馬場などを名前に持つ店は、ここで通る。)

実データの 25 パターンで確かめると、誤り 9 件は全部不採用、正しい 16 件は全部採用でした。取りこぼしは、ローマ字表記の 1 件だけでした。

すでに、間違った位置が焼き付いていた記事 30 件と、店の位置のキャッシュ 22 件は、消して、解決し直しました。キャッシュを消すと、1 店につき 1 回だけ、API を呼び直します。

同じ日に見つけた、似た話:通知の店名が「ライヴポケット」

「通知の店名が、ライヴポケットになる」という報告もありました。店名が取れなかったときに、最後の受け皿として、カテゴリ(「ライヴポケット」)が通知に出ていました。ライヴポケットは、応募を受け付ける場であって、店ではありません。そこで、分からないときは、null を返すようにしました。呼び出し側は、店名が無ければ記事の題名を使います。ライヴポケットの題名は、「キデイランド ららぽーと富士見店 …」のように、店名から始まるので、そのほうが正しく伝わります。

分かったこと

外部の答えは、答え自身で、信用できるかを確かめる。

この話に出てくるもの

ほかの記録

コメント

感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。

押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。