Googleマップの「スター」(お気に入りの場所)が、古いものから消えて表示されなくなる問題

Googleマップの「スター」(地図上の★アイコン)を使って、お気に入りの場所をポコポコ登録している。
主に、旅行先の「行きたいところリスト」。
お気に入りの場所を保存する - パソコン - マップ ヘルプ

しかし、どうも昔の旅行で「スター」をつけたハズの地域なのに、「全くスターが表示されない」場合がある。
昔のヤツほど怪しい。

↓の例では、過去に青森でつけたスターが全く表示されていない。
(たくさんスターをつけて、かつ削除も自分ではしていない)

北海道は、比較的最近スターをつけているので、たくさん表示(★)されている。

f:id:tonogata:20170604183025p:plain:w400

そこで、Googleマップの「スター」を1度バックアップして、経過観測してみることにした。

「スター」とは微妙に別件ではあるが、もともとGoogleマップで扱うKMLの上限が1000なのか?みたいな議論はあり(仕様は不明)、本件「スター」についてはどうなんだろうな?と思っていたのだ。
Max. Number of Placemarks in KML for Google Maps
Max. Number of Placemarks in KML for Google Maps - Stack Overflow

Googleマップ公式サイトには仕様が書いてないので、探っていくしかなさそう。


さて。


結論から言うと、

  • 「スター」には「表示件数」or「読み込みサイズ」の上限がある
  • 上限を超えてもGoogle内にはデータが残っており、いつでもバックアップから取得可能
  • しかし上限を超えた分は、地図上で「スター」表示されない(★アイコンなし)
  • 表示されなくなる条件は、「件数」か「サイズ」か・・・
  • いずれにしろ800~1000件あたりを超えると、危ないと思われ

という感じかなぁ。


分かんないけど。


以下、詳細にて。

Googleマップの「スター」をダウンロードする(ファイル取得)

「スター」のバックアップ・ファイル(GeoJSON)は、以下のURLから取得可能。
https://takeout.google.com/settings/takeout

「マップ(場所)」だけチェックをONにして、「次へ」。

f:id:tonogata:20170604183301p:plain:w600

これでファイルをゲットできる。

中身は、こんな感じ。

※「スター」1個分の記述(名称や緯度経度など)

{
    "geometry" : {
      "coordinates" : [ 140.5961782, 40.6439597 ],
      "type" : "Point"
    },
    "properties" : {
      "Google Maps URL" : "http://maps.google.com/?cid=13916538126556719178",
      "Location" : {
        "Address" : "日本, 〒036-0367 青森県黒石市前町1−3",
        "Business Name" : "すずのややきそば",
        "Country Code" : "JP",
        "Geo Coordinates" : {
          "Latitude" : "40.6439597",
          "Longitude" : "140.5961782"
        }
      },
      "Published" : "2015-11-15T03:34:46Z",
      "Title" : "すずのややきそば",
      "Updated" : "2015-11-15T03:34:46Z"
    },
    "type" : "Feature"
  },

上記は「スター1件分」で、スターの数だけ↑が続く、テキストファイルになっている。

自分のファイルの場合、全部で3万行だった。


GeoJsonファイルの確認

「スターが表示されない」問題について、最初に疑ったのは「もしかして古いのは自動で削除される?」ということだった

そこで、今年の1月頃に1度バックアップしておき、最近(6月)になって取得したファイルと比較してみることにした。
1月から6月までの間にも、どんどん「スター」を登録していったので、もしかしたら古いのが削除されているかも、と思ったのだ。

結果としては、特に問題なかった。

古い「スター」も、ファイル上では勝手に削除されていることはなかった。
(diffで確認した/店名変更の更新など些細な違い以外はナシ)

また、1月以降に新しく追加した「スター」は、当然ちゃんとGeoJsonにも追加されていた。


そこで、重い腰を上げてGeoJsonファイルの中身をチェックすることに。


まず、GeoJsonのスター・データには、それぞれ更新日が付いている。
またファイル上での記述も、その更新日順になっている。

"Updated" : "2015-11-15T03:34:46Z"

そこで、一番日付が古い「スター」をGoogleマップ上でみてみる。
「スター」がついていないことを、確認した。

GeoJson上では「スター」としてデータが残っているのに、地図上では「スター」として表示されない。
(地図上では★が付かない)

そして少しずつ日付の新しい「スター」を確認していき、現在のGoogleマップで「スター」として表示されていない範囲を特定した。
1500件ほどあるスターの、約850件目以降の古いスターは地図上で表示されないようだった。

ちなみに、その閾値の周辺には、ほぼ同時刻のスターが固まっている。
(同時刻のスターの中で、表示されるものと、されないものがある)
そのため「○年前より古いのは表示しない」という条件ではなさそう、という所感。
たぶん条件は、「件数」か、「サイズ」。

ちなみに、1500件あるスターのGeoJsonファイルも、1MBに達しないレベル。
サイズ的な側面で言っても、その程度でフォーマットやpaser、jsのlimitに到達しないんじゃないかな?
やはり、あるとしたらGoogle側で独自にlimitを設定している可能性か、もしくは別の条件か・・・(件数とか)。


Googleマップ上での表示確認

手元のGeoJson上で、表示される/されないの境界が分かった。

ここから更に、Googleマップ上でスターを増やしたら、どうなるだろうか?

  1. Googleマップ上で、新規にスターを1件登録してみる
  2. ページを再度読み込み(データのリロード)
  3. さっきまで「スター」になっていたモノで、一番日付の古いのがどうなっているか確認

特に変化なし。
新たに「表示されなくなったスター」は、なさそうだった。

しかし数件スターを増やしたところで、変化が出た。
さっきまで「スター表示」されていた中で、一番古いデータが「スター表示」されなくなったのだ。

以降も、繰り返しこの事象が発生した。

やはり、新しいスターを追加すると、古いスターが「スター表示」されなくなるらしい。
(地図上では★が付かない)

しかし、その詳細なロジックは不明。
数件追加毎に、1件ずつ古いのが消えたような挙動ではあったが、単なるタイムラグかもしれない。
もしくは、監視対象外のみえないところで(もっと新しいスターで)、1件追加毎に消えているヤツがあったかもしれない。

正直、そこまでウォッチするガッツはない。
なので、ロジックは不明。

いずれにしろ、自分の場合は約850件が「表示される/されない」の境界線になっていた。
件数的にそのラインが怪しいか、それくらいのサイズ/文字数(*1)が怪しいんじゃないかと。
(*1)1件あたりのサイズは、店名などによって微妙に異なるのが、まぁだいたい同じ感じじゃないかと


まとめ

とりあえず、「古いスターは表示されなくなる」という問題がハッキリして良かった。

なんかこう、永久保存版としては別の手法を考えた方がいいかもしれないな。
細かくマイマップで分けて保存するとか。


そんな感じ。

Google カテゴリーの記事一覧 - やじり鳥
旅行用アプリ カテゴリーの記事一覧 - やじり鳥

|TOPページ|記事一覧|プライバシーポリシー|