MULTISOUP

MULTISOUP

MULTISOUP

マルティスープ
Staff Blog

Introduction example

2016.10.26

Geocoding APIの住所のタイプと住所コンポーネントのタイプ

GeocodingAPI

みなさん、こんにちは!

今日は、 Google Maps APIs の Geocoding API を使う度に皆さんが(私だけ?)、ずっと”気になっていた事”について書きたいと思います。ずっーと”気になっていた事”、それは Geocoding API における住所のタイプと住所コンポーネントのタイプについてです。

 

例えば、 Geocoding API で “東京都千代田区神田錦町3-11” について、ジオコーディングしたい場合は、以下のようなURLでリクエストします。


※以下は、通常スタンダードプラン(無償版)でのパラメータです。

 

https://maps.googleapis.com/maps/api/geocode/json?address=%E6%9D%B1%E4%BA%AC%E9%83%BD%E5%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%E7%A5%9E%E7%94%B0%E9%8C%A6%E7%94%BA3-11

 

すると、以下のようなレスポンスがJSONで返ってきます。
※2016/10時点のレスポンスになります。
※赤色の部分が、”住所のタイプと住所コンポーネントのタイプ”になります。

 

{
  "results" : [
  {
    "address_components" : [
    {
      "long_name" : "11",
      "short_name" : "11",
      "types" : [ "political", "sublocality", "sublocality_level_4" ]
   },
    {
      "long_name" : "3丁目",
      "short_name" : "3丁目",
      "types" : [ "political", "sublocality", "sublocality_level_2" ]
    },
    {
      "long_name" : "神田錦町",
      "short_name" : "神田錦町",
      "types" : [ "political", "sublocality", "sublocality_level_1" ]
    },
    {
      "long_name" : "千代田区",
      "short_name" : "千代田区",
      "types" : [ "locality", "political" ]
    },
    {
      "long_name" : "東京都",
      "short_name" : "東京都",
      "types" : [ "administrative_area_level_1", "political" ]
    },
    {
      "long_name" : "日本",
      "short_name" : "JP",
      "types" : [ "country", "political" ]
    },
    {
      "long_name" : "101-0054",
      "short_name" : "101-0054",
      "types" : [ "postal_code" ]
    }
    ],
    "formatted_address" : "日本, 〒101-0054 東京都千代田区神田錦町3丁目11",
    "geometry" : {
      "location" : {
        "lat" : 35.6921309,
        "lng" : 139.7603281
      },
      "location_type" : "ROOFTOP",
      "viewport" : {
        "northeast" : {
          "lat" : 35.69347988029149,
          "lng" : 139.7616770802915
        },
        "southwest" : {
          "lat" : 35.69078191970849,
          "lng" : 139.7589791197085
        }
      }
    },
    "place_id" : "ChIJT5OqzA-MGGARLrl0nC90mwA",
    "types" : [ "political", "sublocality", "sublocality_level_4" ]
  }
 ],
 "status" : "OK"
}

 

住所のタイプ(および住所コンポーネントのタイプ)にはどのようなものがあるのか知りたい場合は、以下のURLからデベロッパーガイドをご覧いただけます。

 

https://developers.google.com/maps/documentation/geocoding/intro?hl=ja#Types

 

しかし、よく読んでみると、

 

★ 注:このリストはすべてを網羅するものではなく、今後変更される可能性もあります。

 

という1行が書かれています。

 

ジオコーディングをする際は、その結果がどの精度でジオコーディングできているかを把握できる必要がありますし、アプリケーションの画面上で表示する必要があるかもしれません。

仮に画面上で表示する場合はきっと日本語で表示したい筈ですが、それを実現する方法として、オリジナルの住所のタイプ(または住所コンポーネントのタイプ)をキー、対応する日本語を値とするマップ構造のデータを設定ファイルやデータベースに持つ方法が考えられます。

しかし、Googleから提供される情報について、すべてを網羅するものではなく、今後変更される可能性があるとなると、完全なマップ構造のデータを用意する事ができません。それこそが、(少なくとも私が)ずっと”気になっていた事”でした。

 

そこで、Googleのテクニカルサポートに問い合わせてみた結果、以下のような回答(一部抜粋)が返ってきました。

 

As mentioned, new types can be added (or old ones removed/renamed). Your application needs to be flexible enough to accommodate these changes without crashing.

When the API adds a new type, it can happen that the docs are updated afterwards. Even though it might only take half day, it is not “exhaustive”. The English language version of the documentation will generally be updated first.
https://developers.google.com/maps/documentation/geocoding/intro#Types

If you are receiving a new type in your application that is not listed I would encourage you to check the English language version of the documentation to see if it is listed there. If it isn’t listed it is likely a new type that will be added to the documentation shortly.

 

上記より、ジオコーディングを用いたアプリケーション開発の際に、住所のタイプ(および住所コンポーネントのタイプ)に関する対処として以下の点に注意する必要があるかと思います。

 

1. 新たなタイプが追加されたり、既存のタイプが変更・削除される事を前提として、アプリケーションを設計・開発する。

2. Googleが提供するデベロッパーガイドで公開されいる情報を、暫定的なタイプの全体と考える。(他に公式な情報が無い為)

3. 定期的(または必要に応じて)デベロッパーガイドを確認し、新たなタイプや変更・削除されたタイプがある場合はアプリケーション側に反映する。

4. 最速の情報が知りたい場合は、英語版のデベロッパーガイドを確認する。

問い合わせるまでも無いような事かもしれませんが、モヤモヤしたものが少しでも明快になれば幸いかと思います。

 

Google Maps API プレミアプランには、グーグルから直接サポートが受けられるテクニカルサポートがあります。24時間対応してもらえます(Follow the Sun)! プレミアプランをご購入いただいてるみなさんは、全員こちらのサポートの対象ですので、不明点があった場合は、問い合わせてみてください。(ただし、英語のみ)

 

Google Maps APIに関する質問は、こちらのブログでも受け付けておりますので、以下フォームよりお問い合わせください。

 

バイ!

 

地図や位置情報を用いたシステムのご提案・開発ならマルティスープへ

マルティスープは、創業以来のGISとモバイル開発の実績と技術力で、営業支援システムやリサーチ・公共インフラ・工事・警備業界の現場を支援するシステム開発など、地図や位置情報を使った業務システムの導入のご提案や開発をいたします。

現場をつなぐコミュニケーションが屋内外業務のパフォーマンスを最大限に。マルティスープのiField(アイ・フィールド)®シリーズは、屋内外業務の現場の実力を減少させるコミュニケーション障壁を除き、使い慣れたスマートデバイスを使って 現場の実力をリアルに伝えるサービス。

位置・空間情報のエキスパート集団として一緒に働きませんか?

マルティスープは地図情報をはじめとする位置・空間情報技術のエキスパート集団です。当社で日々研究している地図や位置情報といった技術は、災害支援など貢献度の高いシステムとして使用されることもあれば、スマートフォンアプリのゲームとして使われることもあり、その利用用途・価値は、今後もますます広がっていっています。
私たちの企業理念は、「創る喜び、使う喜び」です。
今後の開発体制をより強化するために、新卒・中途問わず、当社の未来を共に創っていただける新メンバーを募集します!

【関連記事】こんな記事も読まれています

2019.06.14

Googleマップの印刷に関する問題

みなさん、こんにちは!

続きを読む

2016.07.05

Google Maps JavaScript API のリリースバージョン

みなさん、こんにちは!

 

今回紹介するのは、Google Maps JavaScript API のリリースバ・・・

続きを読む

2017.07.29

Geocoding API で取得できる住所タイプの仕様が変わります

みなさん、こんにちは。

2017年9月2018年1月以降に Google Maps Geocoding API の仕様が・・・

続きを読む

 - Google Maps Geocoding API, Google Maps JavaScript API, サポート, スタッフ日記