チュートリアル:Bing 地図から Web サービスを移行する

Azure Maps と Bing 地図では、どちらの場合も REST Web サービスを介して空間 API にアクセスすることができます。 これらのプラットフォームの API インターフェイスは同様の機能を実行しますが、使用される名前付け規則と応答オブジェクトが異なります。 このチュートリアルでは、次の方法について説明します。

  • フォワード ジオコーディングと逆ジオコーディング
  • 目的地を検索する
  • ルートと道順を計算する
  • マップ イメージを取得する
  • 距離行列を計算する
  • タイム ゾーンの詳細を取得する

次の表に、記載されている Bing 地図サービス API と同様の機能を提供する Azure Maps サービス API を示します。

Bing 地図サービス API Azure Maps サービス API
自動提案 検索
ルート案内 (トラックを含む) Get Route Directions
距離行列 Post Route Matrix
映像 - 静的マップ Get Map Static Image
等時線 Get Route Range
Local Insights 検索 + ルート範囲の取得
ローカル検索 検索
位置情報認識 (POI) 検索
位置情報 (フォワード ジオコーディングと逆ジオコーディング) 検索
Snap to Road ルートのルート案内を投稿する
Spatial Data Services (SDS) 検索 + ルート + その他の Azure サービス
タイム ゾーン タイム ゾーン
トラフィック インシデント トラフィック インシデントの詳細を取得する

次のサービス API は、Azure Maps では現在使用できません。

  • 巡回ルートの最適化 - 対応予定。 Azure Maps ルート API は、車両が 1 つの場合における巡回セールスマンの最適化には対応していません。
  • 映像メタデータ - 主に Bing 地図のタイル URL を取得する目的で使用します。 Azure Maps には、マップ タイルに直接アクセスためのスタンドアロンのサービスがあります。

Azure Maps には、次の REST Web サービスもあります。

  • Azure Maps Creator - 建物や空間のプライベートなデジタル ツインを独自に作成できます。
  • Spatial Operations - ジオフェンシングなどの複雑な空間計算や空間演算をサービスにオフロードします。
  • マップ タイルの取得 – Azure マップから道路タイルと画像タイルにラスター タイルとベクター タイルとしてアクセスします。
  • ルート案内バッチ の送信 – 一定期間に 1 回のバッチで最大 1,000 件のルート要求を実行できます。 処理の高速化のため、ルートはサーバー上で並列に計算されます。
  • トラフィック フロー - ラスターおよびベクター タイル形式のリアルタイムのトラフィック フロー データにアクセスできます。
  • Geolocation API - IP アドレスの位置情報を取得します。
  • Weather Service - リアルタイムと予測の気象データにアクセスできます。

次のベスト プラクティス ガイドも確認してください。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

注意

Azure Maps での認証の詳細については、「Azure Maps での認証の管理」を参照してください。

住所のジオコーディング

ジオコーディングは、住所 (たとえば、"1 Microsoft way, Redmond, WA") を座標 (たとえば、経度: -122.1298、緯度: 47.64005) に変換するプロセスです。 多くの場合、この後、座標を使用して、マップにプッシュピンを配置したり、座標の場所をマップの中央に表示したりします。

Azure Maps により、住所をジオコーディングするための複数の方法が提供されます。

  • 検索アドレスの取得: 自由形式の住所ジオコーディングは、1 つの住所文字列 (など "1 Microsoft way, Redmond, WA") を指定し、要求を直ちに処理するために使用されます。 このサービスは、個々の住所を迅速にジオコーディングする必要がある場合に推奨されます。
  • 検索住所の構造化: 構造化住所ジオコーディングは、単一の住所の一部 (番地、市区町村、国/地域、郵便番号など) を指定し、要求を直ちに処理するために使用されます。 このサービスは、個々の住所を迅速にジオコーディングする必要があり、データが既に個別の住所の一部として解析されている場合に推奨されます。
  • 検索後の住所バッチ: バッチ 住所ジオコーディングを使用して、最大 10,000 個の住所を含む要求を作成し、一定期間にわたって処理します。 すべての住所はサーバーで並行してジオコーディングされ、完了すると、完全な結果セットをダウンロードできます。 このサービスは、大きなデータ セットをジオコーディングする場合に推奨されます。
  • 検索のあいまいさの取得: あいまい検索 API では、住所ジオコーディングと目的地検索が組み合わせられます。 住所、場所、ランドマーク、目的地、または目的地のカテゴリを自由形式の文字列として指定することができます。要求はただちに処理されます。 この API は、ユーザーが同じテキスト ボックスから住所や目的地を検索できるアプリケーションに適しています。
  • 検索後のあいまいバッチ: あいまいバッチ検索を使用して、最大 10,000 個の住所、場所、ランドマーク、または目的地を含む要求を作成し、一定期間にわたって処理します。 すべてのデータはサーバーで並行して処理され、完了すると、完全な結果セットをダウンロードすることができます。

次の表では、構造化されたおよび自由形式の住所のジオコーディングについて、Bing 地図 API パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

住所指定の場所 (構造化された住所)

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
addressLine streetNumberstreetName または crossStreet
adminDistrict countrySubdivision
countryRegion country および countryCode
locality municipality または municipalitySubdivision
postalCode postalCode
maxResults (maxRes) limit
includeNeighborhood (inclnb) 該当なし - 常に Azure Maps によって返されます (利用可能な場合)。
include (incl) 該当なし - 常に Azure Maps によって ISO2 国コードが返されます。
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

Azure Maps では、以下もサポートされます。

  • countrySecondarySubdivision - 郡、行政区
  • countryTertiarySubdivision - 特定の区域、自治区、小郡、コミューン
  • ofs - maxResults パラメーターと組み合わせることで結果をページングします。

クエリ指定の場所 (自由形式文字列の住所)

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
query query
maxResults (maxRes) limit
includeNeighborhood (inclnb) 該当なし - 常に Azure Maps によって返されます (利用可能な場合)。
include (incl) 該当なし - 常に Azure Maps によって ISO2 国コードが返されます。
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

Azure Maps では、以下もサポートされます。

  • typeahead - クエリを部分的な入力として解釈し、検索を予測モード (自動提案または自動補完) にするかどうかを指定します。
  • countrySet - 検索対象を制限する ISO2 国番号のコンマ区切りリスト。
  • lat/lontopLeft/btmRightradius - ユーザーの位置情報とエリアを指定して、指定場所との関連性が高い結果を得ます。
  • ofs - maxResults パラメーターと組み合わせることで結果をページングします。

検索サービスの使用方法の詳細については、「Azure Maps Search Service を使用して場所を検索する」と「Azure Maps Search Service のベスト プラクティス」を参照してください。

座標の逆ジオコーディング (ポイント指定による場所検索)

逆ジオコーディングは、地理座標 (たとえば、経度: -122.1298、緯度: 47.64005) をおよその住所 (たとえば、"1 Microsoft way, Redmond, WA") に変換するプロセスです。

Azure Maps では、複数の逆ジオコーディング メソッドが提供されています。

  • 検索アドレスの逆の取得: 1 つの地理的座標を指定しておおよそのアドレスを取得し、要求をすぐに処理します。
  • 検索住所の逆通りを取得する: 1 つの地理的座標を指定して、近くのクロスストリート情報 (たとえば、1 番目とメイン) を取得し、要求を直ちに処理します。
  • 検索後の住所の逆引きバッチ: 最大 10,000 個の座標を含む要求を作成し、一定期間にわたって処理します。 すべてのデータはサーバーで並行して処理され、完了すると、完全な結果セットをダウンロードすることができます。

次の表では、Bing 地図 API パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
point query
includeEntityTypes entityType - 下記のエンティティ型対応表を参照してください。
includeNeighborhood (inclnb) 該当なし - 常に Azure Maps によって返されます (利用可能な場合)。
include (incl) 該当なし - 常に Azure Maps によって ISO2 国コードが返されます。
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

Azure Maps での検索の詳細については、「Azure Maps Search Service のベスト プラクティス」を参照してください。

Azure Maps の逆ジオコーディング API には、Bing 地図では利用できない機能があります。これらは、アプリを移行する際に統合するのに役立つ場合があります。

  • 速度制限のデータの取得。
  • 道路使用情報の取得 (地方の道路、幹線道路、自動車専用道路、ランプなど)。
  • 座標が位置する通りの側。

エンティティ型対応表

次の表では、Bing 地図のエンティティ型の値と、これらに相当する Azure Maps のプロパティ名を相互参照で示しています。

Bing 地図のエンティティ型 相当する Azure Maps のエンティティ型 説明
Address アドレス
Neighborhood Neighbourhood "近隣"
PopulatedPlace Municipality または MunicipalitySubdivision ""、""、または "地区"
Postcode1 PostalCodeArea "郵便番号" または "ZIP コード"
AdminDivision1 CountrySubdivision "" または "都道府県"
AdminDivision2 CountrySecondarySubdivison "" または "行政区"
CountryRegion Country 国名
CountryTertiarySubdivision "自治区"、"小郡"、"コミューン"

場所候補の取得 (自動提案)

いくつかの Azure Maps 検索 API では、自動提案シナリオに使用可能な予測モードがサポートされています。 Bing 地図の Autosuggest API に最も近いのは、Azure Maps のあいまい検索 API です。 次の API も予測モードに対応しています。クエリに &typeahead=true を追加してください。

  • 検索アドレスの取得: 1 つの住所文字列 (など "1 Microsoft way, Redmond, WA") を指定し、要求をすぐに処理するために使用される自由形式の住所ジオコーディング。 このサービスは、個々の住所を迅速にジオコーディングする必要がある場合に推奨されます。
  • 検索のあいまいさの取得: あいまい検索 API では、住所ジオコーディングと目的地検索が組み合わせられます。 住所、場所、ランドマーク、目的地、または目的地のカテゴリを自由形式の文字列として指定することができます。要求はただちに処理されます。 この API は、ユーザーが同じテキスト ボックスから住所や目的地を検索できるアプリケーションに適しています。
  • 検索 POI の取得: 目的地 (POI) 検索は、名前で目的地を検索するために使用されます。 たとえば、"starbucks" のようにします。
  • 検索 POI カテゴリの取得: 目的地 (POI) カテゴリ検索は、カテゴリ別に目的地を検索するために使用されます。 たとえば、"レストラン" などです。

ルートと道順を計算する

Azure Maps を使用してルートと道順を計算することができます。 Azure Maps には、Bing 地図のルート指定サービスと同じ機能が数多く用意されています。たとえば、次のようなものがあります。

  • 到着および出発の時刻
  • リアルタイムおよび予測ベースの交通路
  • さまざまな移動手段 (乗用車、徒歩、トラック)
  • ウェイポイントの順序の最適化 (巡回セールスマン)

Note

Azure Maps では、すべてのウェイポイントを座標にする必要があります。 住所は、最初にジオコーディングする必要があります。

Azure Maps のルート指定サービスでは、ルート指定の計算用として次の API が提供されます。

  • ルートのルート案内を取得する: ルートを計算し、要求をすぐに処理します。 この API では、GET 要求と POST 要求の両方がサポートされます。 大量のウェイポイントを指定する場合、または多くのルート オプションを使用する場合は、URL 要求が長くなりすぎて問題が発生することがないように POST 要求が推奨されます。
  • ルート案内バッチの送信: 最大 1,000 個のルート要求を含む要求を作成し、一定期間にわたって処理します。 すべてのデータはサーバーで並行して処理され、完了すると、完全な結果セットをダウンロードすることができます。

次の表では、Bing 地図 API パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
avoid avoid
dateTime (dt) departAt または arriveAt
distanceBeforeFirstTurn (dbft) N/A
distanceUnit (du) N/A - Azure Maps ではメートル法のみが使用されます。
heading (hd) vehicleHeading
maxSolutions (maxSolns) maxAlternativesalternativeTypeminDeviationDistance、および minDeviationTime
optimize (optwz) routeType および traffic
optimizeWaypoints (optWp) computeBestOrder
routeAttributes (ra) instructionsType
routePathOutput (rpo) routeRepresentation
timeType (tt) departAt または arriveAt
tolerances (tl) N/A
travelMode travelMode
waypoint.n (wp.n) または viaWaypoint.n (vwp.n) query - lat0,lon0:lat1,lon1…. 形式の座標
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

Azure Maps のルート指定 API では、同一 API 内でのトラックのルート指定もサポートされています。 次の表では、Bing 地図の他のトラック ルート指定パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
dimensionUnit (dims) 該当なし - メートル単位の寸法のみがサポートされます。
weightUnit (wu) 該当なし - キログラム単位の重量のみがサポートされます。
vehicleHeight (height) vehicleHeight
vehicleWidth (width) vehicleWidth
vehicleLength (vl) vehicleLength
vehicleWeight (weight) vehicleWeight
vehicleAxles (axles) vehicleAxelWeight
vehicleTrailers (vt) N/A
vehicleSemi (semi) vehicleCommercial
vehicleMaxGradient (vmg) N/A
vehicleMinTurnRadius (vmtr) N/A
vehicleAvoidCrossWind (vacw) N/A
vehicleAvoidGroundingRisk (vagr) N/A
vehicleHazardousMaterials (vhm) vehicleLoadType
vehicleHazardousPermits (vhp) vehicleLoadType

ヒント

既定では、Azure Maps ルート API により、概要 (距離と時間) とルートの座標のみが返されます。 道案内の指示を取得するには、instructionsType パラメーターを使用します。 routeRepresentation パラメーターを使用すると、概要とルートをフィルター処理することができます。

Azure Maps ルート API の詳細については、「Azure Maps Route Service のベスト プラクティス」を参照してください。

Azure Maps のルート指定 API には、Bing 地図では利用できない機能が用意されています。これらは、アプリを移行する際に統合するのに役立つ場合があります。

  • ルートの種類のサポート: 最短、最速、スリリング、最も燃費が良い。
  • 追加の移動モードのサポート: 自転車、バス、バイク、タクシー、トラック、ライトバン。
  • 150 個のウェイポイントのサポート。
  • 1 つの要求で複数の移動時間を計算: 過去の交通量、現在の交通量、交通量なし。
  • 追加の道路の種類を回避: 自動車の相乗り用車線、未舗装道路、既に使用したことがある道路。
  • エンジン仕様に基づくルート指定。 燃料または充電の残量とエンジン仕様に基づいて内燃自動車または電気自動車のルートを計算。
  • 車両の最大速度を指定。

座標を道路にスナップする

Azure Maps には、道路に座標をスナップする方法がいくつかあります。

  • 道路ネットワークに沿った論理ルートに座標をスナップするには、ルートの道順 API を使用します。
  • ベクター タイルに含まれる最も近い道路に個々の座標をスナップするには、Azure Maps Web SDK を使用します。
  • 座標を個別にスナップするには、Azure Maps のベクター タイルを直接使用します。

ルートの道順 API を使用して座標をスナップする

Azure マップは、ルートルート案内の取得 API を使用して道路に座標をスナップできます。 このサービスは、一連の座標の間の論理ルートの再構築に使用でき、Bing 地図の Snap to Road API に相当します。

ルートの道順 API を使用して道路に座標をスナップする方法は 2 種類あります。

  • 座標が 150 個以下の場合は、GET Route Directions API でウェイポイントとして渡します。 この方法では、スナップされた 2 種類のデータを取得することができます。ルート指示には個々のスナップされたウェイポイントが含まれるのに対し、ルート経路には座標間の経路全体を埋める一連の補完座標が含まれます。
  • 座標が 150 個を超える場合は、POST Route Directions API を使用します。 クエリ パラメーターに始点座標と終点座標を渡す必要がありますが、POST 要求の本文ですべての座標を supportingPoints パラメーターに渡し、GeoJSON ジオメトリ形式のポイントのコレクションをフォーマットできます。 この方法で利用できるスナップされたデータは、座標間の経路全体を埋める一連の補完座標で構成されたルート経路のみです。 Azure Maps Web SDK のサービス モジュールを使用したこのアプローチの例を確認するには、Azure Maps サンプルの「ポイントを論理ルート パスにスナップする」のサンプルを参照してください。

次の表では、Bing 地図 API パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
points supportingPoints - POST 要求の本文にこれらのポイントを渡します
interpolate 該当なし
includeSpeedLimit 該当なし
includeTruckSpeedLimit 該当なし
speedUnit 該当なし
travelMode travelMode
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

Azure Maps ルート指定 API では、論理経路の計算を行う同じ API 内のトラックのルート指定パラメーターもサポートされています。 次の表では、Bing 地図の他のトラック ルート指定パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
dimensionUnit (dims) 該当なし - メートル単位の寸法のみがサポートされます。
weightUnit (wu) 該当なし - キログラム単位の重量のみがサポートされます。
vehicleHeight (height) vehicleHeight
vehicleWidth (width) vehicleWidth
vehicleLength (vl) vehicleLength
vehicleWeight (weight) vehicleWeight
vehicleAxles (axles) vehicleAxelWeight
vehicleTrailers (vt) N/A
vehicleSemi (semi) vehicleCommercial
vehicleMaxGradient (vmg) N/A
vehicleMinTurnRadius (vmtr) N/A
vehicleAvoidCrossWind (vacw) N/A
vehicleAvoidGroundingRisk (vagr) N/A
vehicleHazardousMaterials (vhm) vehicleLoadType
vehicleHazardousPermits (vhp) vehicleLoadType

この方法ではルートの道順 API を使用するため、該当するサービスのオプションすべてを使用して、道路への座標のスナップに使用するロジックをカスタマイズできます。 たとえば、出発時刻を指定すると、過去のトラフィック データが考慮されます。

現在、Azure Maps のルートの道順 API では速度制限のデータが返されませんが、Azure Maps の逆ジオコーディング API を使用することで取得できます。

Web SDK を使用して座標をスナップする

Azure Maps Web SDK では、マップのレンダリングにベクター タイルを使用します。 これらのベクター タイルには未処理の道路形状の情報が含まれており、個々の座標について単純なスナップを行う場合に、座標に最も近い道路を算出するのに使用できます。 これは、座標を道路に視覚的に重ねて表示したいとき、既に Azure Maps Web SDK を使用してデータを可視化している場合に便利です。

ただし、この方法では、スナップの対象はマップ ビューに読み込まれている道路セグメントだけになります。 国またはリージョン レベルで縮小すると、道路データがなければスナップは実行できません。ただし、このズーム レベルでは、1 つのピクセルで複数の都市ブロックが含まれる領域を表すことができるので、スナップは必要ありません。 これを解決するには、マップの移動が完了するたびにスナップのロジックを適用します。 このスナップ ロジックが完全に機能する例については、Azure Maps サンプルの「道路ロジックへの基本スナップ」のサンプルを参照してください。

Azure Maps のベクター タイルを直接使用して座標をスナップする

Azure Maps のベクター タイルには未処理の道路形状データが含まれており、このデータをもとにして座標に最も近い道路上のポイントを算出して、個々の座標について基本的なスナップを行うことができます。 ズーム レベル 15 で地区のすべての道路セグメントが表示されるので、ここからタイルを取得します。 その後、4 分木タイル ピラミッドの演算を使用し、必要なタイルを判別してジオメトリに変換することができます。 さらに、turf jsNetTopologySuite などの空間演算ライブラリを使用することで、最も近い線分を算出できます。

マップ イメージを取得する (静的マップ)

Azure Maps には、静的マップ イメージにデータを重ねてレンダリングするための API が用意されています。 Azure マップ Get Map Static Image API は、Bing マップの静的マップ API に相当します。

Note

Azure Maps では、中央、すべてのプッシュピン、経路の位置を longitude,latitude 形式の座標にする必要がありますが、Bing 地図では latitude,longitude 形式が使用されます。 住所は、最初にジオコーディングする必要があります。

次の表では、Bing 地図 API パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
centerPoint center
format format - URL パスの一部として指定されます。 現時点では、PNG のみがサポートされています。
heading 該当なし - ストリート ビューはサポートされていません。
imagerySet layer および style - 詳細については、「サポートされているマップ スタイル」を参照してください。
mapArea (ma) bbox
mapLayer (ml) N/A
mapSize (ms) width および height - 最大 8192 x 8192 のサイズを指定できます。
declutterPins (dcl) N/A
dpi 該当なし
drawCurve path
mapMetadata N/A
pitch 該当なし - ストリート ビューはサポートされていません。
pushpin (pp) pins
zoomLevel zoom
query 該当なし - 中央または境界ボックスを使用する必要があります。
highlightEntity (he) N/A
style N/A
ルート パラメーター N/A
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

Note

Azure Maps では、Bing 地図で使用されるマップ タイルの 2 倍のサイズのタイルを使用するタイル システムが使用されます。 このため、Azure Maps のズーム レベル値では、Bing 地図と比べて 1 つ上のズーム レベルが表示されます。 移行する要求では、ズーム レベルを 1 つ下げて、これを補正してください。

詳細については、「ラスター マップ上にカスタム データをレンダリングする」を参照してください。

Azure Maps のレンダリング サービスでは、静的マップ イメージを生成できるだけでなく、ラスター (PNG) およびベクター形式のマップ タイルに直接アクセスすることもできます。

  • マップの静的イメージ の取得 – ベース マップ (道路、境界、背景) のラスター (PNG) とベクター タイルを取得します。
  • マップ タイル の取得 – 航空写真と衛星画像のタイルを取得します。

プッシュピン URL パラメーターの形式の比較

前: Bing 地図

Bing 地図では、URL で pushpin パラメーターを使用することにより、プッシュピンを静的マップ イメージに追加できます。 pushpin パラメーターは、次に示すように、latitude,longitude 形式の場所、アイコンのスタイル、テキスト ラベル (最大 3 文字) を受け取ります。

&pushpin=latitude,longitude;iconStyle;label

プッシュピンを追加するには、異なる値を指定した別の pushpin パラメーターを URL に追加します。 プッシュピンのアイコンのスタイルは、Bing 地図 API で利用可能ないずれかの定義済みのスタイルに限られます。

たとえば、Bing 地図で、マップの座標 (経度: -110、緯度: 45) に "AB" ラベル付きの赤色のプッシュピンを追加するには、次の URL パラメーターを使用します。

&pushpin=45,-110;7;AB

Bing Maps static map pin

後: Azure Maps

Azure Maps では、URL で pins パラメーターを指定することにより、プッシュピンを静的マップ イメージに追加できます。 Azure Maps のプッシュピンは、アイコンのスタイルと、そのアイコンのスタイルを使用する場所の一覧を指定することで定義します。 この情報は pins パラメーターに渡されます。パラメーターを複数回指定することで、異なるスタイルのプッシュピンをサポートできます。

&pins=iconType|pinStyles||pinLocation1|pinLocation2|...

追加のスタイルを使用するには、異なるスタイルや場所のセットを指定した別の pins パラメーターを URL に追加します。

ピンの位置について、Azure Maps では座標を longitude,latitude 形式にする必要がありますが、Bing 地図では latitude,longitude 形式が使用されます。 さらに、Azure Maps では、経度と緯度をコンマではなくスペースで区切ることにも注意してください。

iconType 値は、作成するピンの種類を指定します。次の値を指定することができます。

  • default - 既定のピン アイコン。
  • none - アイコンは表示されず、ラベルのみがレンダリングされます。
  • custom - カスタム アイコンを使用することを指定します。 アイコン イメージを指す URL は、ピンの位置情報の後、pins パラメーターの末尾に追加できます。

Azure Maps でピンのスタイルを追加するには、形式 optionNameValue を使用します。複数のスタイルを指定する場合は、iconType|optionName1Value1|optionName2Value2 のようにパイプ (|) 文字で区切ります。 オプションの名前と値は区切らないことに注意してください。 Azure Maps でプッシュピンのスタイルを設定するには、次のスタイル オプション名を使用します。

  • al - プッシュピンの不透明度 (アルファ) を指定します。 0 から 1 までの範囲の数値を指定できます。
  • an - ピンのアンカーを指定します。 x と y のピクセル値を x y 形式で指定します。
  • co - ピンの色。 24 ビットの 16 進カラー値 (000000 から FFFFFF) を指定する必要があります。
  • la - ラベルのアンカーを指定します。 x と y のピクセル値を x y 形式で指定します。
  • lc - ラベルの色。 24 ビットの 16 進カラー値 (000000 から FFFFFF) を指定する必要があります。
  • ls - ラベルのサイズ (ピクセル単位)。 0 より大きい数値を指定できます。
  • ro - アイコンを回転させる角度の値。 -360 から 360 までの範囲の数値を指定できます。
  • sc - ピン アイコンのスケール値。 0 より大きい数値を指定できます。

場所の一覧内にあるすべてのプッシュピンに単一のラベル値を適用するのではなく、ピンの位置ごとにラベル値を指定します。 ラベル値には、複数の文字で構成される文字列を指定することができます。また、スタイルや場所の値として誤って解釈されないようにするため、一重引用符で囲むこともできます。

たとえば、Azure Maps で、赤色 (FF0000) の既定のアイコンと、座標 (経度: -122.349300、緯度: 47.620180) にあるアイコンの下 (15 50) に位置付けられたラベル "Space Needle" を追加するには、次の URL パラメーターを使用します。

&pins=default|coFF0000|la15 50||'Space Needle'-122.349300 47.620180

Azure Maps static map pin

次の例では、ラベル値が 1'、'2'、'3' の 3 つのピンを追加します。

&pins=default||'1'-122 45|'2'-119.5 43.2|'3'-121.67 47.12

Azure Maps static map multiple pins

曲線描画 URL パラメーターの形式の比較

前: Bing 地図

Bing 地図では、URL で drawCurve パラメーターを使用することにより、線とポリゴンを静的マップ イメージに追加できます。 drawCurve パラメーターは、次に示すように、シェイプの種類、スタイルの種類、マップにレンダリングされる場所の一覧を受け取ります。

&drawCurve=shapeType,styleType,location1,location2...

追加のスタイルを使用するには、異なるスタイルや場所のセットを指定した別の drawCurve パラメーターを URL に追加します。

Bing 地図で場所を指定するには、latitude1,longitude1_latitude2,longitude2_… 形式を使用します。 場所もエンコード可能です。

Bing 地図のシェイプの種類には、線、ポリゴン、円、曲線があります。 スタイルの種類には、線の色、線の太さ、枠線の色、塗りつぶしの色、枠線の太さ、円の半径があります。

たとえば、Bing 地図で、不透明度が 50%、太さが 4 ピクセルの青色の線をマップの座標 (経度: -110、緯度: 45) と座標 (経度: -100、緯度: 50) の間に追加するには、次の URL を使用します。

&drawCurve=l,FF000088,4;45,-110_50,-100

Bing Maps static map line

後: Azure Maps

Azure Maps では、URL で path パラメーターを指定することにより、線とポリゴンを静的マップ イメージに追加できます。 Bing 地図と同様に、このパラメーターでスタイルと場所の一覧を指定できます。また、path パラメーターを複数回指定することで、異なるスタイルの円、線、ポリゴンを複数レンダリングできます。

&path=pathStyles||pathLocation1|pathLocation2|...

経路の位置について、Azure Maps では座標を longitude,latitude 形式にする必要がありますが、Bing 地図では latitude,longitude 形式が使用されます。 さらに、Azure Maps では、経度と緯度をコンマではなくスペースで区切ることにも注意してください。 現在、Azure Maps では、エンコードされた経路はサポートされません。

Azure Maps で経路のスタイルを追加するには、形式 optionNameValue を使用します。複数のスタイルを指定する場合は、optionName1Value1|optionName2Value2 のようにパイプ (|) 文字で区切ります。 オプションの名前と値は区切らないことに注意してください。 Azure Maps で経路のスタイルを設定するには、次のスタイル オプション名を使用します。

  • fa - ポリゴンのレンダリングに使用する塗りつぶしの色の不透明度 (アルファ)。 0 から 1 までの範囲の数値を指定できます。
  • fc - ポリゴンの領域のレンダリングに使用する塗りつぶしの色。
  • la - 線およびポリゴンの枠線をレンダリングする際に使用される線の色の不透明度 (アルファ)。 0 から 1 までの範囲の数値を指定できます。
  • lc - 線およびポリゴンの枠線をレンダリングするために使用される線の色。
  • lw - 線の幅 (ピクセル単位)。
  • ra - 円の半径をメートル単位で指定します。

たとえば、Azure Maps で、不透明度が 50%、太さが 4 ピクセルの青色の線をマップの座標 (経度: -110、緯度: 45) と座標 (経度: -100、緯度: 50) の間に追加するには、次の URL を使用します。

&path=lc0000FF|la.5|lw4||-110 45|-100 50

Azure Maps static map line

距離行列を計算する

Azure Maps には、場所のセット間の移動時間と移動距離を距離行列として計算するための API が用意されています。 Azure Maps の距離行列 API は、Bing 地図の距離行列 API に相当します。

  • ルートマトリックスの後: 出発地と目的地のセットの移動時間と距離を非同期的に計算します。 要求あたり最大 700 個のセルがサポートされます (出発地の数 × 目的地の数)。 この制限を念頭に置いて考えられるマトリックス ディメンションの例としては、700x150x1010x1028x2510x70 があります。

Note

距離行列 API に対する要求は、要求の本文で出発地と目的地の情報を指定した POST 要求を使用してのみ作成できます。 さらに、Azure Maps では、すべての出発地および目的地を座標にする必要があります。 住所は、最初にジオコーディングする必要があります。

次の表では、Bing 地図 API パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
origins origins - POST 要求の本文で GeoJSON として指定します。
destinations destination - POST 要求の本文で GeoJSON として指定します。
endTime arriveAt
startTime departAt
travelMode travelMode
resolution N/A
distanceUnit 該当なし - 距離はすべてメートル単位です。
timeUnit 該当なし - 時間はすべて秒単位です。
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

ヒント

Azure Maps のルート指定 API で使用できる高度なルート指定オプション (トラック ルート指定、エンジン仕様、回避など) はすべて、Azure Maps 距離行列 API でサポートされます。

等時線の計算

Azure Maps では、等時線を計算するための API が提供されます。これは、指定された時間内または燃料や充電の残量内で出発地点から任意の方向に移動できる領域をカバーするポリゴンです。 Azure Maps のルートのレンダリング API は、Bing 地図の等時線 API に相当します。

  • ルート範囲: 指定された時間内、距離内、または使用可能な燃料や充電の残量内で出発地点から任意の方向に移動できる領域をカバーするポリゴンを計算します。

Note

Azure Maps では、クエリの出発地を座標で指定する必要があります。 住所は、最初にジオコーディングする必要があります。

また、Bing 地図では、時間や距離に基づいて等時線を計算できますが、Azure Maps では、時間、距離、使用可能な燃料や充電の残量に基づいて等時線の計算を行うことができます。

次の表では、Bing 地図 API パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
waypoint (wp) query
dateTime (dt) departAt
maxTime timeBudgetInSec
timeUnit (tu) 該当なし - 時間はすべて秒単位です。
travelMode (mode) travelMode
maxDistance (maxDis) distanceBudgetInMeters
distanceUnit (du) 該当なし - 距離はすべてメートル単位です。
optimize (optmz) routeType
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

ヒント

Azure Maps のルート指定 API で使用できる高度なルート指定オプション (トラック ルート指定、エンジン仕様、回避など) はすべて、Azure Maps の等時線 API でサポートされます。

目的地を検索する

Bing 地図で目的地データを検索するには、次の API を使用します。

  • ローカル検索: 名前またはエンティティの種類 (カテゴリ) を指定して、近くにある目的地を検索します (放射状検索)。 Azure マップ検索 POI の取得と検索 POI カテゴリの取得 API は、この API に最も似ています。
  • 位置情報認識:ある場所から特定の距離内にある目的地を検索します。 この API に最も近い Azure Maps の API は、近隣検索です。
  • ローカル情報: 特定の座標から指定の最大走行時間内または最長走行距離内にある目的地を検索します。 これは、Azure Maps では、まず等時線を計算してからジオメトリ内検索 API に渡すことで実現できます。

Azure Maps には、目的地を検索するための複数の検索 API が用意されています。

  • 検索 POI の取得: 目的地 (POI) 検索は、名前で目的地を検索するために使用されます。 たとえば、"starbucks" のようにします。
  • 検索 POI カテゴリの取得: 目的地 (POI) カテゴリ検索は、カテゴリ別に目的地を検索するために使用されます。 たとえば、"レストラン" などです。
  • Post Search Inside Geometry:特定の位置または指定したジオメトリ (ポリゴン) 内の特定の距離内にある目的地を検索します。
  • 検索のあいまいさの取得: あいまい検索 API では、住所ジオコーディングと目的地検索が組み合わせられます。 住所、場所、ランドマーク、目的地、または目的地のカテゴリを自由形式の文字列として指定することができます。要求はただちに処理されます。 この API は、ユーザーが同じテキスト ボックスから住所や目的地を検索できるアプリケーションに適しています。
  • ルートに沿った検索後: 指定したルート パスに沿って目的地を検索します。
  • 検索後のあいまいバッチ: あいまいバッチ検索を使用して、最大 10,000 個の住所、場所、ランドマーク、または目的地を含む要求を作成し、一定期間にわたって処理します。 すべてのデータはサーバーで並行して処理され、完了すると、完全な結果セットをダウンロードすることができます。

Azure Maps での検索の詳細については、「Azure Maps Search Service のベスト プラクティス」を参照してください。

トラフィック インシデントの取得

Azure Maps では、トラフィック データを取得するための API が複数提供されます。 使用できるトラフィック データには、次の 2 種類があります。

  • フロー データ - 道路区間のトラフィックのフローに関するメトリックを提供します。 これは一般に、道路を色分けするために使用します。 データは 2 分ごとに更新されます。
  • インシデント データ - 工事、通行止め、事故、およびトラフィックに影響する可能性があるその他のインシデントについてのデータを提供します。 データは 1 分ごとに更新されます。

Bing 地図では、対話型のマップ コントロールでトラフィック フローとインシデントのデータが提供されるほか、インシデント データはサービスとしても公開されています。

また、Azure Maps の対話型のマップ コントロールには、インシデント データが統合されています。 Azure Maps では、次のトラフィック サービス API も用意されています。

次の表では、Bing 地図のトラフィック API パラメーターと、それに相当する Azure Maps 内のトラフィック インシデントの詳細 API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
mapArea boundingBox および boundingZoom
includeLocationCodes N/A
severity (s) 該当なし - すべてのデータが返されます
type (t) 該当なし - すべてのデータが返されます
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

タイム ゾーンを取得する

Azure Maps には、座標が位置する場所のタイム ゾーンを取得するための API が用意されています。 Azure Maps のタイム ゾーン API は、Bing 地図のタイム ゾーン API に相当します。

次の表では、Bing 地図 API パラメーターと、それに相当する Azure Maps 内の API パラメーターを相互参照で示しています。

Bing 地図 API パラメーター 相当する Azure Maps API パラメーター
point query
query 該当なし - 場所は最初にジオコーディングする必要があります。
dateTime timeStamp
includeDstRules 該当なし - Azure Maps からの応答には常に含まれます。
key subscription-key - 詳細については、「Azure Maps による認証」を参照してください。
culture (c) language - 詳細については、「Azure Maps でのローカライズのサポート」を参照してください。
userRegion (ur) view - 詳細については、「Azure Maps でサポートされているビュー」を参照してください。

Azure Maps プラットフォームでは、この API に加えて、タイム ゾーン名と ID の変換に役立つ他のタイム ゾーン API も多数用意されています。

Spatial Data Services (SDS)

Bing 地図の Spatial Data Services では、3 つの主要な機能が提供されます。

  • バッチ ジオコーディング - 1 つの要求で複数の住所ジオコードが含まれる大規模バッチを処理します。
  • 行政境界データの取得 - 座標を使用して、指定されたエンティティの種類について区分けの境界を取得します。
  • 空間ビジネス データのホストおよび照会 – 単純な 2 次元のデータ テーブルをアップロードして、いくつかのシンプルな空間クエリによりテーブルにアクセスします。

データのバッチ ジオコーディング

バッチ ジオコーディングとは、多数の住所または場所を受け取り、それらすべてを 1 つの要求でサービスに渡して並列でジオコーディングし、1 つの応答で結果を受け取るプロセスのことです。

Bing 地図では、1 つのバッチ ジオコーディング要求で最大 200,000 個の住所を解析できます。 この要求はキューに入れられ、データ セットのサイズとサービスにかかる負荷に応じて、通常は数分から数時間の間に処理されます。 要求に含まれる住所ごとに、トランザクションが生成されました。

Azure Maps にもバッチ ジオコーディング サービスはありますが、1 つの要求で渡すことのできる住所は最大 10,000 個であり、要求の処理にかかる時間は、データ セットのサイズとサービスにかかる負荷にもよりますが数秒から数分です。 要求に含まれる住所ごとに、トランザクションが生成されました。

Azure Maps での大量の住所のジオコーディングでは、標準の検索 API に並列要求を行う方法もあります。 これらのサービスでは、要求ごとに 1 つの住所しか受け入れられませんが、使用量制限のない S0 サービス レベルでも使用可能です。 S0 サービス レベルでは、1 つのアカウントから 1 秒あたり最大 50 個の要求を Azure Maps プラットフォームに行うことができます。 そのため、これらの制限の範囲内で処理を行うのであれば、1 時間に最大 18 万個の住所をジオコーディングできます。 Gen2 または Gen1 (S1) 価格レベルでは、1 つのアカウントから 1 秒あたりに実行可能なクエリの数に関する制限の規定がないため、この価格レベルを使用するとより多くのデータをより高速に処理できます。また、バッチ ジオコーディング サービスを使うことで、転送されるデータの総量を抑え、ネットワーク トラフィックを削減できます。

Note

Azure Maps Gen1 価格レベルの廃止

Gen1 価格レベルは非推奨となり、2026 年 9 月 15 日に廃止されます。 Gen2 価格レベルによって Gen1 (S0 と S1 の両方) が置き換えられます。 Azure Maps アカウントに Gen1 価格レベルが選択されている場合、廃止前に Gen2 価格レベルに切り替えることができます。切り替えない場合、自動的に更新されます。 Gen1 価格レベルの廃止に関する詳細については、「Azure Maps アカウントの価格レベルを管理する」を参照してください。

  • 検索アドレスの取得: 自由形式の住所ジオコーディングは、1 つの住所文字列 (など "1 Microsoft way, Redmond, WA") を指定し、要求を直ちに処理するために使用されます。 このサービスは、個々の住所を迅速にジオコーディングする必要がある場合に推奨されます。
  • 検索住所の構造化: 構造化住所ジオコーディングは、単一の住所の一部 (番地、市区町村、国/地域、郵便番号など) を指定し、要求を直ちに処理するために使用されます。 このサービスは、個々の住所を迅速にジオコーディングする必要があり、データが既に個別の住所の一部として解析されている場合に推奨されます。
  • 検索後の住所バッチ: バッチ 住所ジオコーディングを使用して、最大 10,000 個の住所を含む要求を作成し、一定期間にわたって処理します。 すべての住所はサーバーで並行してジオコーディングされ、完了すると、完全な結果セットをダウンロードできます。 このサービスは、大きなデータ セットをジオコーディングする場合に推奨されます。
  • 検索のあいまいさの取得: あいまい検索 API では、住所ジオコーディングと目的地検索が組み合わせられます。 住所、場所、ランドマーク、目的地、または目的地のカテゴリを自由形式の文字列として指定することができます。要求はただちに処理されます。 この API は、ユーザーが同じテキスト ボックスから住所や目的地を検索できるアプリケーションに適しています。
  • 検索後のあいまいバッチ: あいまいバッチ検索を使用して、最大 10,000 個の住所、場所、ランドマーク、または目的地を含む要求を作成し、一定期間にわたって処理します。 すべてのデータはサーバーで並行して処理され、完了すると、完全な結果セットをダウンロードすることができます。

行政境界データの取得

Bing 地図では、Geodata API 経由で国/リージョン、州、郡、都市、郵便番号の行政境界が提供されています。 この API は、ジオコーディング対象の座標またはクエリを受け取ります。 渡したクエリはジオコーディングされ、最初の結果の座標が使用されます。 この API は座標を受け取り、指定されたエンティティの種類についてその座標と交わる境界を取得します。 この API では、クエリを渡した場合、必ずしも境界は返されません。 "Seattle, WA" に対するクエリを渡しても、エンティティの種類の値が国やリージョンに設定されている場合、返されるのは米国の境界です。

Azure Maps では、行政境界 (国/リージョン、州、郡、都市、郵便番号) にアクセスすることもできます。 境界を取得するには、目的の境界 (Seattle, WA など) についていずれかの検索 API に対しクエリを実行する必要があります。 検索結果に関連する境界が含まれる場合、結果の応答でジオメトリ ID が提供されます。 その後、ポリゴン検索 API を使用して、1 つ以上の ID について正確な境界を取得できます。 この点が Bing 地図とは少し異なります。Azure Maps では検索対象の境界が返されますが、Bing 地図で返されるのは、特定座標にある指定されたエンティティの種類の境界です。 また、Azure Maps で返される境界データは GeoJSON 形式です。

要点は次のとおりです。

  1. 次のいずれかの検索 API に、取得したい境界に関するクエリを渡します。

  2. 目的の結果にジオメトリ ID がある場合は、それを Get Search Polygon API に渡します。

空間ビジネス データのホストおよび照会

Bing 地図の Spatial Data Services では、ビジネス データをホストし空間 REST サービスとして公開できる、シンプルな空間データ ストレージ ソリューションが提供されます。 このサービスでは、プロパティ指定検索、近隣検索、境界ボックス内検索、1 マイル ルート検索の 4 つの主なクエリを利用できます。 通常、このサービスの利用企業の多くは、他のデータベースにデータを格納してその一部をこのサービスにアップロードすることで、店舗検索ツールのようなアプリケーションを実現しています。 キーベースの認証による基本的なセキュリティが提供されるため、このサービスは、公開データのみに使用することが推奨されています。

最初、ビジネスの位置情報データはデータベース内に保存されていることがほとんどです。 そのため、Azure SQL や Azure PostgreSQL (PostGIS プラグインを使用) などの Azure ストレージ ソリューションを使用することをお勧めします。 これらのストレージ ソリューションはともに空間データに対応しており、豊富な空間クエリ機能が用意されています。 データを適切なストレージ ソリューションに保存した後で、カスタムの Web サービスを作成するか、ASP.NET や Entity Framework などのフレームワークを使用することにより、データをアプリケーションに統合できます。 この方法を使用すると、セキュリティが強化され、より多くのクエリ機能が提供されます。

また、Azure Cosmos DB には限定的な空間機能が用意されており、シナリオによってはこれで十分な場合があります。

以下に、Azure で空間データをホストおよび照会する場合に役立つリソースをいくつか紹介します。

クライアント ライブラリ

Azure Maps には、次のプログラミング言語用のクライアント ライブラリが用意されています。

その他のプログラミング言語用のオープンソース クライアント ライブラリには、次のものがあります。

リソースをクリーンアップする

クリーンアップすべきリソースはありません。

次のステップ

Azure Maps REST サービスの詳細について学習します。