iOS 開発者ガイド for SDK

輸送情報

アプリケーションは 、 SDK for iOS からの API コールを使用し て、ユーザーのトランジット情報を表示できます。

注 : トランジットマップスキーム(NMAMapSchemeNormalDayTransitNMAMapSchemeNormalNightTransit、および NMAMapSchemeHybridDayTransit)は、トランジット情報を表示するために特別に設計されています。 アプリに交通情報が表示されている場合は、オプションでこれらの地図スキームのいずれかを使用できます。

NMAMapTransitDisplayMode

地図の交通データは、地図エリアの上にレイヤーとして表示されます。 この中継レイヤーをカスタマイズするには、 NMAMapView クラスで利用できる transitDisplayMode プロパティを設定します。 たとえば、利用可能なすべての交通情報を表示するには、次のようにします

// Assumes map is instantiated
mapView.transitDisplayMode = NMAMapTransitDisplayModeEverything;
図 1. すべてを表示するように設定された MapTransitLayer

配達地点とアクセス地点のみを表示するには、次の番号に電話してください。

// Assumes map is instantiated
mapView.transitDisplayMode = NMAMapTransitDisplayModeStopAndAccess;
図 2. 中継地点と中継地点のみを表示するように設定された MapTransitLayer

すべての交通情報通話を非表示にするには:

// Assumes map is instantiated
mapView.transitDisplayMode = NMAMapTransitDisplayModeNothing;
注意 :transitDisplayMode 地図の設定を変更すると、設定が影響を受ける場合があります。 たとえば、マップ スキームを変更して NMAMapSchemeNormalDayTransit 「すべて」モードを有効にします。 で変更を行う前に、マップ スキームの変更を行うことをお勧め transitDisplayModeします。

GitHub での地図トランジットモードの例

この機能を示す例について は、 https://github.com/heremaps/ (Obj-C) および https://github.com/heremaps/ (Swift) を参照してください。

輸送機器を高輝度表示します

次の 4 種類のトランジットデータオブジェクトを使用できます。
  • トランジットストップデータ - で表されます NMATransitStop
  • トランジットラインデータ - で表されます NMATransitLine
  • トランジット アクセスデータ - で表されます NMATransitAccess
  • 輸送システム情報データ - で表されます NMATransitSystem

これらのタイプのデータは NMATransitObject 、の子インスタンスであるプレゼンテーションオブジェクトで表さ NMAProxyObjectれます。 タップジェスチャで選択し、に渡し NMATransitManager て適切なデータオブジェクトを要求できます。

次の例では、を使用し NMATransitObject てデータオブジェクトを取得します。 タップされたオブジェクトが中継ラインの場合、アプリケーションは NMATransitLine が入力された transitManager:didGetLineInfo:forId: コールバックを受け取ります。 取得された輸送データオブジェクトは uniqueId と同じで transitObjectあることに注意してください。


// assuming that this class adopts the NMATransitManagerDelegate protocol
[NMATransitManager sharedTransitManager].delegate = self;
// the transitObject is an NMATransitObject
[[NMATransitManager sharedTransitManager] requestInfoForObject:transitObject];

ユースケースに応じて、 1 つまたは識別子オブジェクトのリストをトランジットラインから取得する方法がいくつかあります。

  • uniqueId ユーザーがを選択した場合は、プロパティを使用します NMATransitLine
  • NMATransitStop.lineIds ユーザーがを選択した場合は、プロパティを使用 NMATransitStopします。 Identifier この選択した中継地点に接続されている明細の一覧が返されます。

タップ可能なNMAProxyObject処理の詳細 について は、「オブジェクトとインタラクション」を参照してください。

1 つまたは一意の識別子のリストを使用して、次の API を呼び出し、行を強調表示できます。

// Assumes mapView is instantiated and uniqueId is a valid identifier
[mapView.mapTransitLayer highlightTransitLinesFromUniqueIds:@[uniqueId]];
図 3. 選択した中継地点に接続されている中継地点を強調表示する MapTransitLayer

NMATransitStop

NMATransitStop 施設 / 設備には、配達地点に関する情報が含まれています。 次の図は、さまざまな種類のトランジットストップを示しています。

図 4. NMATransitStop : メトロの駅
図 5. NMATransitStop : フェリー乗り場

TransitStopObject を取得するには、 NMATransitManagerDelegate プロトコルで transitManager:didGetStopInfo:forId: メソッドを実装し、 NMATransitManager から要求を実行します。

TransitStopObject このクラスには、中継地点に関する情報を取得するための次のプロパティがあります。

  • location - 中継地点の位置座標を取得します
  • officialName - 配達地点の正式な名前を取得します
  • informalName - 配達地点の非公式の名前を取得します
  • uniqueId - 中継地点の ID を取得します
  • systemIds - この中継地点が属する中継システムを取得します。複数のシステムを指定できます
  • lineIds - Identifier この中継地点に接続されている中継ラインの機器のリストを取得します

hasTransitType:type メソッドを使用して、この経由地が輸送タイプをサポートしているかどうかを確認することもできます。 たとえば、公共のバスとメトロの両方の鉄道を利用できる交通機関の駅があります。

NMATransitLine

NMATransitLine オブジェクトには、トランジットラインに関する情報が含まれています。 次の図は、さまざまな種類のトランジット回線の例を示しています。

図 6. 3 種類のトランジットライン : 地下鉄、電車、水上タクシーを利用できます

NMATransitLine を取得するには、 NMATransitManagerDelegate プロトコルで transitManager:didGetLineInfo:forId: メソッドを実装し、 NMATransitManager から要求を実行します。

NMATransitLine クラスプロパティとして一意の識別子を提供します。 この識別子をNMAMapTransitLayerに送信し て、地図上のこの行を強調表示 できます (NMAMapTransitDisplayMode を参照 ) 。

NMATransitLine このクラスには、次のプロパティのトランジット回線情報が含まれています。

  • officialName - トランジット回線の正式な名前を取得します
  • informalName - トランジット回線の非公式な名前を取得します
  • shortName - トランジット回線の短い名前を取得します
  • transitType -NMATransitTypeこの輸送明細が属する輸送タイプ () を取得します
  • color - 行に関連付けられている色 ( 存在する場合 ) を取得します
  • systemId - このトランジット回線が属するトランジットシステムを取得します
  • uniqueId - トランジット回線の ID を取得します

NMATransitAccess

NMATransitAccess オブジェクトには、トランジット アクセスに関する情報が含まれています。 トランジット アクセスは、トランジットストップへの入口 / 出口です。 1 つのトランジットストップへの複数のトランジットアクセスが存在する場合があります。

トランジット アクセスは、小さな通過地点として表示され、下部に下向きの三角形が取り付けられています。この三角形は、高いズームレベルでのみ表示されます。 配達地点とアクセス地点を示すアイコンは、国や会社によって異なります。 次の図は、 2 つの例を示しています。

図 7. トランジットストップ & アクセス : 地下鉄の駅からは 1 ヶ所でアクセスできる
図 8. トランジットストップ & アクセス : 複数のアクセスが可能なメトロの駅

NMATransitAccess を取得するには、 NMATransitManagerDelegate プロトコルで transitManager:didGetAccessInfo:forId: メソッドを実装し、 NMATransitManager から要求を実行します。

NMATransitAccess は、トランジット アクセスに関する情報を取得するための次のプロパティがあります。

  • location - このトランジット アクセスの位置座標を取得します
  • name - このトランジット アクセスの名前を取得します
  • stopId - このトランジット アクセスが誘導する中継地点の一意の ID を取得します
  • uniqueId - トランジット回線の ID を取得します

NMATransitSystem

NMATransitSystem このクラスには、次の 1 つ以上のプロパティを呼び出してアクセスできる公共交通機関システムに関する情報が含まれています。

  • officialName - トランジットシステムの正式な名前を取得します
  • website - トランジットシステムの Web サイト URL を取得します
  • companyOfficialName - トランジットシステムの正式な会社名を取得します
  • companyWebsite - トランジットシステム会社の Web サイト URL を取得します
  • companyRoutePlannerWebsite - 輸送システム会社のルートプランナー URL を取得します
  • companyScheduleWebsite - トランジットシステム会社のスケジュール URL を取得します
  • companyTelephoneNumber - トランジットシステム会社の電話番号を取得します

NMATransitSystem を取得するには、 NMATransitManagerDelegate プロトコルで transitManager:didGetSystemInfo:forId: メソッドを実装し、 NMATransitManager から要求を実行します。

NMATransitManager

NMATransitManager このクラスは、一意の識別子からさまざまなタイプの中継情報をクエリーし NMATransitManagerDelegate 、クエリー結果を監視して、完了時に適切なコールバックメソッドをトリガーする役割を果たします。 アプリケーションは [NMATransitManager sharedTransitManager]NMATransitManager クラスメソッドを呼び出して、トランジット情報を照会するためのを取得できます。

NMATransitManagerDelegate からのクエリー結果を監視するために使用 NMATransitManagerできます。 アプリケーション内で実装し、非同期クエリー要求の一部として送信する必要があります。

NMATransitManagerDelegate プロトコルには、次のコールバックが含まれています。

  • transitManager:didGetLineInfo:forId: - NMATransitLine オブジェクトを提供します
  • transitManager:didGetStopInfo:forId: - NMATransitStop オブジェクトを提供します
  • transitManager:didGetAccessInfo:forId: - NMATransitAccess オブジェクトを提供します
  • transitManager:didGetSystemInfo:forId: - NMATransitSystem オブジェクトを提供します
  • transitManager:didCompleteWithError: - 非同期クエリー要求が完了したことを示します。 NMATransitManager は、現在のリクエストが完了していない限り、以降のすべてのリクエストを拒否します。 NMATransitManager がビジーの場合に NMATransitManagerErrorBusy 結果になります。 

非同期要求が NMATransitManager とともにに送信さ OnGetTransitInfoListenerれます。 NMATransitManager コンス NMATransitManager トラクタを呼び出すだけでインスタンスが作成されます。

トランジット関連の列挙体

  • NMATransitObjectType 列挙型 (enum) - さまざまな輸送機器タイプ( NMATransitObjectTypeAccessNMATransitObjectTypeLine または)を記述する値を表します NMATransitObjectTypeStop
  • NMATransitType 列挙型 (enum) - NMATransitTypePublicBusNMATransitTypeLightRailNMATransitTypeWater などの交通手段のタイプを記述する値を表します