輸送情報
お使い のアプリケーションでは、 SDK for Android からの API 通話を使用して、ユーザーの交通情報を表示できます。
NORMAL_DAY_TRANSIT
、 NORMAL_NIGHT_TRANSIT
、および HYBRID_DAY_TRANSIT
)は、トランジット情報を表示するために特別に設計されています。 アプリに交通情報が表示されているときに、これらの方法のいずれかを使用することを選択できます。 MapTransitLayer
MapTransitLayer
は、地図エリアで利用可能な交通データを表示するレイヤーです。 中継レイヤーをカスタマイズするには、Map.getMapTransitLayer()
を呼び出して、MapTransitLayer
クラスで利用できるメソッドにアクセスします。 たとえば、利用可能なすべての交通情報を表示するには、次のようにします
// Assumes map is instantiated
map.getMapTransitLayer().setMode(MapTransitLayer.Mode.EVERYTHING);
MapTransitLayer
地図の設定を変更すると、設定が影響を受ける場合があります。 たとえば、マップ スキームを変更して NORMAL_DAY_TRANSIT
「 Everything 」モードを有効にします。 で変更を行う前に、マップ スキームの変更を行うことをお勧め MapTransitLayer
します。 
トランジットストップおよびアクセスコールのみを表示するには、次の手順に従います。
// Assumes map is instantiated
map.getMapTransitLayer().setMode(MapTransitLayer.Mode.STOPS_AND_ACCESSES);

すべての交通情報通話を非表示にするには:
// Assumes map is instantiated
map.getMapTransitLayer().setMode(MapTransitLayer.Mode.NOTHING);
GitHub の交通情報の例
この機能の例について は、 https://github.com/heremaps/を参照してください。
輸送機器を高輝度表示します
- トランジットストップデータ - で表されます
TransitStopObject
- トランジットラインデータ - で表されます
TransitLineObject
- トランジット アクセスデータ - で表されます
TransitAccessObject
- トランジットラインセグメントデータ - で表されます
TransitLineSegmentObject
通過するオブジェクトは、タップジェスチャで選択できます。 たとえば、 1 つ以上の TransitLineObject
を強調表示するには、ラインオブジェクトの一意の識別子を把握しておく必要があります。 ユースケースに応じ Identifier
て、 1 つまたは複数のオブジェクトのリストを取得する方法がいくつかあります。
-
TransitLineObject.getLineId()
ユーザーがをTransitLineObject
タップして選択したときに呼び出します。Identifier
選択した輸送明細のが返されます。 - 経由地
TransitStopObject
を選択した場合にTransitStopObject.getTransitStopInfo().getLines()
呼び出します。getLines()
選択した経由地に接続されている明細Identifier
のリストを戻します。
タップ作成可能なMapProxyObjects
オブジェクトの処理方法の詳細 については、「 MapProxyObject オブジェクトの処理」を参照してください。
1 つまたは複数 Identifier
のオブジェクトのリストを使用して、次の API を呼び出し、行を高輝度表示します。
// Assumes map is instantiated and identifierList is
// filled with a list of Identifiers
map.getMapTransitLayer().highlightTransitLines(identifierList);

TransitStopObject
A TransitStopObject
は MapProxyObject
、トランジットストップに関する情報を含むタイプのです。 次の図は、さまざまな種類のトランジットストップを示しています。
![]() | ![]() |
タップされたTransitStopObject
に関する情報を取得 するに は ( 「MapProxyObject オブジェクトを処理」を参照 ) 、次の方法onMapObjectsSelected(List<ViewObject>)
を使用します。
private MapGesture.OnGestureListener listener = new MapGesture.OnGestureListener() {
...
@Override
public boolean onMapObjectsSelected(List<ViewObject> objects) {
for (ViewObject obj : objects) {
if (obj.getBaseType() == ViewObject.Type.PROXY_OBJECT) {
MapProxyObject proxyObj = (MapProxyObject) obj;
if (proxyObj.getType() == MapProxyObject.Type.TRANSIT_STOP) {
TransitStopObject transitStopObj
= (TransitStopObject) proxyObj;
Log.d(TAG, "Found a TransitStopObject");
Log.d(TAG, "position is "
+ transitStopObj.getCoordinate().toString());
TransitStopInfo transitStopInfo
= transitStopObj.getTransitStopInfo();
...
}
}
return true;
}
に TransitStopObject
は、トランジットストップについての情報を取得するための 2 つの方法があります。
-
getCoordinate()
中継地点の位置座標を取得します -
getTransitStopInfo()
トランジットストップについての詳細情報を取得します
TransitStopInfo
TransitStopInfo
クラスには、次のメソッドの 1 つ以上を呼び出してアクセスされる中継地点情報が含まれています。
-
getOfficialName()
- 配達地点の正式な名前を取得します -
getInformalName()
- 配達地点の非公式の名前を取得します -
getId()
-Identifier
トランジットストップのを取得します -
getTransitTypes()
- この中継地点が属する中継地点タイプを取得します。複数の種類がある場合があります。 -
getLines()
-Identifier
この中継地点に接続されている中継ラインの機器のリストを取得します
詳細情報を取得するために、各Identifier
がTransitDatabase
に送信されます。 詳細については、 TransitDatabase を参照してください。 また、に送信し MapTransitLayer
て、地図で強調表示することもできます。 (MapTransitLayer を参照 )
トランジットストップに接続されている最初のトランジットラインに関する情報を取得する例を以下に示します。 TransitDatabase.OnGetTransitInfoListener
を受け取るには、を実装する必要 TransitLineInfo
があります。 (TransitLineInfo を参照 )
非同期要求が TransitDatabase
とともにに送信 OnGetTransitInfoListener
されます。
TransitDatabase.OnGetTransitInfoListener listener
= new TransitDatabase.OnGetTransitInfoListener() {
......
@Override
public void onTransitLineInfo(TransitLineInfo info) {
......
}
// transitStopInfo is a TransitStopInfo object
......
mTransitDatabase.getLineInfo(transitStopInfo.getLines().get(0), listener);
TransitLineObject
A TransitLineObject
は MapProxyObject
、トランジット回線に関する情報を含むタイプのです。 次の図は、さまざまな種類のトランジット回線の例を示しています。

タップされたTransitLineObject
に関する情報を取得 するに は ( 「 MapProxyObject オブジェクトの処理」を参照 ) 、次のコードに示すようにonMapObjectsSelected(List<ViewObject>)
を使用します。
private MapGesture.OnGestureListener listener = new MapGesture.OnGestureListener() {
...
@Override
public boolean onMapObjectsSelected(List<ViewObject> objects) {
for (ViewObject obj : objects) {
if (obj.getBaseType() == ViewObject.Type.PROXY_OBJECT) {
MapProxyObject proxyObj = (MapProxyObject) obj;
if (proxyObj.getType() == MapProxyObject.Type.TRANSIT_LINE) {
TransitLineObject transitLineObj
= (TransitLineObject) proxyObj;
Log.d(TAG, "Found a TransitLineObject");
Log.d(TAG, "Id is "
+ transitLineObj.getLineId().toString());
mTransitDatabase.getLineInfo(m_lineIdList.get(0),
mOnGetTransitInfoListener);
}
}
}
return true;
}
TransitLineObject
は、中継ラインのIdentifier
を取得するための単一の方法を提供します。 これ Identifier
をに送信 MapTransitLayer
すると、地図で強調表示されます。 ( 詳細については 、 MaptransitLayer を参照してください ) 。
上の例に示すよう に、Identifier
は、OnGetTransitInfoListener
とともにTransitDatabase
に送信することもできます( TransitDatabase を参照)。これにより、トランジット回線の詳細情報を取得できます。mOnGetTransitInfoListener
は、TransitDatabase
からTransitLineInfo
オブジェクトを受け取るように実装されています。
TransitDatabase.OnGetTransitInfoListener mOnGetTransitInfoListener
= new TransitDatabase.OnGetTransitInfoListener() {
...
@Override
public void onTransitLineInfo(TransitLineInfo info) {
...
}
}
TransitLineInfo
TransitLineInfo
このクラスには、次の 1 つ以上のメソッドを呼び出してアクセスする中継回線情報が含まれています。
-
getOfficialName()
- トランジット回線の正式な名前を取得します -
getInformalName()
- トランジット回線の非公式な名前を取得します -
getShortName()
- トランジット回線の短い名前を取得します -
getTransitType()
- この輸送明細が属する輸送タイプを取得します
TransitAccessObject
は TransitAccessObject
、 MapProxyObject
トランジット アクセスに関する情報を含むのタイプです。 トランジット アクセスは、トランジットストップへの入口 / 出口です。 1 つのトランジットストップへの複数のトランジットアクセスが存在する場合があります。
トランジット アクセスは、下部に下向きの三角形が取り付けられた小さな通過地点として表示され、より高いズームレベルでのみ表示されます。 配達地点とアクセス地点を示すアイコンは、国や会社によって異なります。 次の図は、 2 つの例を示しています。
![]() | ![]() |
タップされたTransitAccessObject
に関する情報を取得するに は ( 「 MapProxyObject オブジェクトの処理」を参照 ) 、次のコードのようにonMapObjectsSelected(List<ViewObject>)
を使用します。
private MapGesture.OnGestureListener listener = new MapGesture.OnGestureListener() {
...
@Override
public boolean onMapObjectsSelected(List<ViewObject> objects) {
for (ViewObject obj : objects) {
if (obj.getBaseType() == ViewObject.Type.PROXY_OBJECT) {
MapProxyObject proxyObj = (MapProxyObject) obj;
if (proxyObj.getType() == MapProxyObject.Type.TRANSIT_ACCESS) {
TransitAccessObject transitAccessObj
= (TransitAccessObject) proxyObj;
Log.d(TAG, "position is " +
transitAccessObj.getCoordinate().toString());
TransitAccessInfo transitAccessInfo
= transitAccessObj.getTransitAccessInfo();
...
break;
}
}
}
return true;
}
に TransitAccessObject
は、トランジット アクセスについての情報を取得するための 2 つの方法があります。
-
getCoordinate()
- トランジット アクセスの位置座標を取得します -
getTransitAccessInfo()
- トランジット アクセスの詳細情報を取得します
TransitAccessInfo
TransitAccessInfo
クラスには、次の 1 つ以上のメソッドを呼び出してアクセスできるトランジット アクセス情報が含まれています。
-
getTransitTypes()
- このトランジット アクセスが所属する輸送タイプを取得します。複数の種類がある場合があります -
getStopId()
- このトランジット アクセスが誘導する中継地点の一意の識別子を取得します
次の例 TransitDatabase
では、詳細情報を取得するために、中継地点の一意の識別子がに送信されます。 詳細については、 TransitDatabase を参照してください。
// transitAccessInfo is a TransitAccessInfo object
Log.d(TAG, "transit type is " +
transitAccessInfo.getTransitTypes().toString());
Log.d(TAG, "Stop Id is " +
transitAccessInfo.getStopId().toString());
mTransitDatabase.getStopInfo(transitAccessInfo
.getStopId(), mOnGetTransitInfoListener);
トランジット アクセスの目的地の通過地点に関する情報を取得する例を以下に示します。 TransitStopInfo
オブジェクトを受け取るには、OnGetTransitInfoListener
を実装する必要があります。 非同期要求が TransitDatabase
に送信さ OnGetTransitInfoListener
れます。 詳細については、「 TransitStopInfo 」を参照してください。
TransitDatabase.OnGetTransitInfoListener mOnGetTransitInfoListener
= new TransitDatabase.OnGetTransitInfoListener(){
......
@Override
public void onTransitStopInfo(TransitStopInfo info) {
......
}
}
// transitAccessInfo is a TransitAccessInfo object
......
mTransitDatabase.getStopInfo(transitAccessInfo.getStopId(),
mOnGetTransitInfoListener);
TransitSystemInfo
TransitSystemInfo
クラスには、次のメソッドの 1 つ以上を呼び出してアクセスできる公共交通機関についての情報が含まれています。 -
getSystemOfficialName()
- トランジットシステムの正式な名前を取得します -
getSystemWebsiteUrl()
- トランジットシステムの Web サイト URL を取得します -
getCompanyOfficialName()
- トランジットシステムの正式な会社名を取得します -
getCompanyWebsiteUrl()
- トランジットシステム会社の Web サイト URL を取得します -
getCompanyRoutePlannerUrl()
- 輸送システム会社のルートプランナー URL を取得します -
getCompanyScheduleUrl()
- トランジットシステム会社のスケジュール URL を取得します -
getCompanyPhone()
- トランジットシステム会社の電話番号を取得します -
getBicycleHours()
- トランジットシステムの駐輪場時間を取得します -
getSystemLogo()
- システムロゴを取得します ( ある場合 ) -
getCompanyLogo()
- CompanyLogo を取得します ( 存在する場合 )
交通機関の情報を取得する例を以下に示します。 この例では、OnGetTransitInfoListener
はTransitSystemInfo
オブジェクトを受け取るように実装されています。 詳細については、「 TransitDatabase 」セクションを参照してください。
TransitDatabase.OnGetTransitInfoListener mOnGetTransitInfoListener =
new TransitDatabase.OnGetTransitInfoListener() {
...
@Override
public void onTransitSystemInfo(TransitSystemInfo systemInfo) {
String officialName = systemInfo.getSystemOfficialName();
}
...
}
// transitLineInfo is a TransitLineInfo object
mTransitDatabase.getSystemInfo(transitLineInfo.getSystemId(),
mOnGetTransitInfoListener);
TransitDatabase
TransitDatabase
クラスは、OnGetTransitInfoListener
固有のIdentifier
を使用してさまざまなタイプの中継情報をクエリーし、クエリー結果を監視し、完了時に適切なコールバックメソッドをトリガーする役割を果たします。 アプリケーションは TransitDatabase
、コンストラクタを呼び出してをアクティブ化 TransitDatabase
し、トランジット情報を照会できます。
OnGetTransitInfoListener
インターフェイスを使用 TransitDatabase
して、のクエリー結果を監視できます。 アプリケーション内で実装し、非同期クエリー要求の一部として送信する必要があります。
TransitDatabase.OnGetTransitInfoListener mOnGetTransitInfoListener
= new TransitDatabase.OnGetTransitInfoListener() {
@Override
public void onTransitLineInfo(TransitLineInfo info) {
//...
}
@Override
public void onTransitStopInfo(TransitStopInfo info) {
//...
}
@Override
public void onTransitAccessInfo(TransitAccessInfo info) {
//...
}
@Override
public void onTransitSystemInfo(TransitSystemInfo info) {
//...
}
@Override
public void onEnd(TransitDatabase.Error error) {
//...
}
};
OnGetTransitInfoListener
このクラスは、 5 つのコールバックを提供します
-
onTransitLineInfo
TransitLineInfo
オブジェクトを提供します。 (TransitLineInfo を参照 ) -
onTransitStopInfo
TransitStopInfo
オブジェクトを提供します。 (TransitStopInfo を参照 ) -
onTransitAccessInfo
TransitAccessInfo
オブジェクトを提供します。 (TransitAccessInfo を参照 ) -
onTransitSystemInfo
TransitSystemInfo
オブジェクトを提供します。 (TransitSystemInfo を参照 ) -
onEnd
非同期クエリー要求が完了したことを示すコールバックです。注意 :TransitDatabase
現在のリクエストが完了していない限り、以降のすべてのリクエストを拒否します。TransitDatabase
がビジーの場合INVALID_OPERATION
は、が返されます。
非同期要求が TransitDatabase
とともにに送信 OnGetTransitInfoListener
されます。 TransitDatabase
インスタンスは TransitDatabase
コンストラクタを呼び出して作成されます。
次に、の主な使用例を示し TransitDatabase
ます。
-
getLineInfo()
-TransitLineObject.getLineId()
ユーザーがをTransitLineObject
タップして選択した場合にパスインします。 このメソッドIdentifier
は、選択した通過回線のを返します。// transitLineObject is a TransitLineObject object ...... mTransitDatabase.getLineInfo(transitLineObject .getLineId(), mOnGetTransitInfoListener);
-
getLineInfo()
-TransitStopObject.getTransitStopInfo().getLines()
ユーザーがをTransitStopObject
タップして選択した場合にパスインします。 このメソッドIdentifier
は、選択された中継地点に接続されている明細の一覧表を返します。// transitStopInfo is a TransitStopInfo object ...... // Requesting transit line info of the first identifier on the list mTransitDatabase.getLineInfo(transitStopInfo .getLines().get(0), mOnGetTransitInfoListener);
-
getStopInfo()
-TransitAccessInfo.getStopId()
ユーザーがをTransitAccessObject
タップして選択した場合にパスインします。 このメソッドIdentifier
は、トランジット アクセスが誘導する停止位置のを返します。// transitAccessInfo is a TransitAccessInfo object ...... mTransitDatabase.getStopInfo(transitAccessInfo .getStopId(), mOnGetTransitInfoListener);
トランジット関連の列挙体
TransitType
列挙型 (enum) -BUS_PUBLIC
、RAIL_METRO
、などのさまざまな輸送タイプを記述する値を表しますTRAIN_REGIONAL
-
TransitDatabase.Error
列挙型 (enum) -NONE
やなどのトランジットデータベースエラーを記述する値を表しますINVALID_PARAMETERS