はじめに
「いつもNAVI API/SDK」(以下、いつもNAVI API)と「ZENRIN Maps API」は、
いずれも地図表示・施設検索・ルート案内などを、Webやスマホアプリに組み込むための開発者向けサービスです。
現在、いつもNAVI API のページでは、
ZENRIN Maps API への統合案内が表示されており、新規申込は停止されています。
そのため本記事では、両サービスを比較しつつ、
今後中心となる ZENRIN Maps API に着目してみていきたいと思います👀
なかでも今回は、スタートの部分となる認証方法と
Web API の代表的機能である住所検索APIの違いについて焦点を当てて比較していきます🗺
ZENRIN Maps API について
ZENRIN Maps API は、ゼンリンが全国で収集・整備した多様な情報を一元管理する
時空間データベースを基盤とした、幅広い用途に対応可能な地図・位置情報サービスで、
Web API / JavaScript API を通じてさまざまなアプリケーションに活用できます。
利用には事前の申し込みが必要ですが、初めての方は2か月間無料で試すことが可能です✨
具体的な利用開始手順は以下の記事が参考になります。
次節で取り上げる、認証方式の設定方法についても記載がありますので、ぜひご確認ください。
認証方法の比較
ここでは、Webアプリケーション開発者向けに公開されている
デベロッパーズサイトの情報をもとに、両サービスの認証方法の違いを整理します🔑
いつもNAVI API | ZENRIN Maps API | |
---|---|---|
認証方法 | IP認証 (JSのみ)リファラ認証 OAuth1.0a(2-legged) |
IP認証 リファラ認証 OAuth2.0(Bearer) |
IP認証 | クエリパラメータ: if_clientid, if_auth_type |
リクエストヘッダ: x-api-key, Authorization: ip |
リファラ認証 | クエリ不要 (登録済リファラのみ通過) |
リクエストヘッダ: x-api-key, Authorization: referer |
OAuth認証 | リクエストごとに署名付与 (oauth_consumer_key+秘密鍵) |
事前にトークン取得+Bearer送信 |
APIキー | 不要 | 必須(x-api-key) |
OAuth1.0aの認証用パラメータ例
リクエストごとに秘密鍵を用いてOAuth署名を生成し、以下のパラメータを付加します。
- oauth_consumer_key: クライアントID
- oauth_signature_method: HMAC-SHA1 / SHA256 / SHA3-256
- oauth_signature: 生成したOAuth署名
- oauth_timestamp: UNIX時刻
- oauth_nonce: リクエストごとに一意なランダム値
- oauth_version: "1.0" 固定
OAuth2.0のリクエスト例
- トークン取得:
Authorization: Basic <Base64(client_id:client_secret)>
- API呼び出し:
Authorization: Bearer <token>
API動作環境のページに動作確認用のドメインの記載があるので、こちらを参照の上、
OAuth2.0認証 トークン取得 API(oauth2 token)を用いてトークンを取得します。
その後、取得したトークンを用いて、各APIの呼び出しを行うことができます。
※トークンの有効期限は1時間です。
1時間ごとにページをリロードするサンプルコード(HTML)が
デベロッパーズサイトに掲載されていますので、必要に応じてご参照ください📖
トークン取得のリクエスト例
POST https://test-auth.zmaps-api.com/oauth2/token
Authorization: Basic <Base64(client_id:client_secret)>
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
レスポンス例:
{
"access_token":"トークン文字列",
"token_type":"Bearer",
"expires_in":3600
}
上から順にトークン文字列、トークンのタイプ、トークンの存続時間(秒)が返却されます。
API呼び出し例
POST/GET https://test-web.zmaps-api.com/<対象APIのパス>?<クエリパラメータ>
Authorization: Bearer <access_token>
Content-Type: application/x-www-form-urlencoded
x-api-key: <apiキー>
以下の記事で、OAuth2.0 でのデータ取得について詳しく説明されておりますので、
もう少し細かい設定方法等確認したい方は、ご参考ください✨
💡認証方式のポイントまとめ
- いつもNAVI API は OAuth1.0a
- 各リクエストごとに署名を付与
- APIキー不要
- ZENRIN Maps API は OAuth2.0 + APIキー
- 事前にトークンを取得して Bearer で送信
- トークンは有効期限(1時間)があるため、定期的な再取得が必要
認証フローが異なるため、移行や新規開発では実装変更にご注意ください。
住所検索の比較
認証方式に続き、ここでは「住所検索機能」の違いについてみていきたいと思います。
- いつもNAVI API:
address/word
address/list
address/code
address/zipcode
location
- ZENRIN Maps API:
address
主な機能の比較
検索機能 | いつもNAVI API | ZENRIN Maps API |
---|---|---|
フリーワードでの住所検索 | address/word | address |
住所コードの下位階層住所一覧検索 | address/list | address |
住所コードでの住所検索 | address/code | address |
郵便番号での住所検索 | address/zipcode | postcode |
緯度経度での検索 | location | address |
行政界ポリゴン取得 | 該当なし | address |
過去地図検索 | 該当なし | address(※別途契約) |
いつもNAVI API では、検索の用途に応じて複数の API が用意されていましたが、
ZENRIN Maps API では address に各種検索機能が統合されているのが大きな特徴です✨
なお、郵便番号による住所検索は、
ZENRIN Maps API では postcode
という別の API として提供されています。
その他の比較
測地系
-
いつもNAVI API
- 日本測地系(TOKYO) ※離島補正あり
- 世界測地系(JGD2000)
-
ZENRIN Maps API
- 日本測地系 ※離島補正なし
- 日本測地系(ゼンリン ナビ地図)※離島補正あり
- 世界測地系
緯度経度の形式
-
いつもNAVI API
- 10進度形式(dec)
- ミリ秒形式(msec)
-
ZENRIN Maps API
- 10進度形式
※ 本記事は公式マニュアルを基に整理した内容です。
詳細なパラメータ仕様や最新情報は公式ドキュメント( ZENRIN Maps API) をご確認ください。
まとめ
本記事では、いつもNAVI API と ZENRIN Maps API の違いについて、
特に「認証方式」と「住所検索機能」を中心に比較してきました。
両者の主な違いは以下のとおりです:
- 認証方式:OAuth1.0a(いつもNAVI API)→ OAuth2.0 + APIキー(ZENRIN Maps API)へ
- 住所検索API:用途別に分かれていた機能が、ZENRIN Maps API では一部統合されている
また、両者は設計思想や仕様にも違いがあるため、移行や新規開発の際には、
デベロッパーズサイトを参照し、それぞれのAPIの機能構成や仕様を確認したうえで対応することが重要です💡