事前定義されたマップフィーチャーを追加する

マップフィーチャーを追加する

HERE SDKでは、マップスキームに加え、MapFeaturesと呼ばれる特殊なレイヤーをサポートしています。これらの機能により、地図に追加データを重ねることができます。

MapFeaturesは、さまざまなMapFeatureModesを設定することで、その視覚的な表示を制御できます。たとえば、3Dランドマークはテクスチャあり、またはテクスチャなしのモードで表示できます。ランドマークは、ほとんどのマップスキームでデフォルトで有効になっています。

MapSchemeでデフォルトで有効になっているMapFeaturesMapFeatureModesについては、HERE Style Editorドキュメントの「default features and modes per map scheme」(マップスキームごとのデフォルトの機能とモード) を参照してください。

すべてのライセンスですべてのMapFeaturesを使用できるわけではないことに注意してください。「APIリファレンス」を参照して、お使いのライセンスでサポートされているレイヤーを確認してください。

MapFeaturesを追加すると、パフォーマンスに影響を与える可能性があります。

フィーチャー説明ExploreNavigate
AMBIENT_OCCLUSION3Dジオメトリー (押出建物とランドマーク) のアンビエントオクルージョン効果。はいはい
BUILDING_FOOTPRINTS建物の2Dフットプリント。はいはい
CONGESTION_ZONES渋滞エリア (渋滞課金エリア) として指定されている都市エリアで、当該エリアへの進入には料金が課されます。はいはい
CONTOURS地図上の等高線を表示または非表示にして、標高の変化を表します。いいえはい
ENVIRONMENTAL_ZONES環境ゾーンとしてとして指定されている都市エリアで、当該エリアに進入できる車両の種類が制限されています。はいはい
EXTRUDED_BUILDINGS建物の簡単な3D表現。はいはい
LANDMARKS3Dランドマーク。いいえはい
LOW_SPEED_ZONES低速ゾーンに指定されている都市エリア。はいはい
PUBLIC_TRANSIT選択したモードに基づき、地下鉄、トラム、電車、モノレール、フェリーなどの公共交通機関の表示を切り替えます。いいえはい
ROAD_EXIT_LABELS道路出口ラベルがある場合、ラベルを表示または非表示にします。はいはい
SAFETY_CAMERAS安全監視カメラと速度違反取締カメラ。いいえはい
SHADOWSすべての建物タイプ (押出建物とランドマーク) の影。はいはい
TERRAIN標高地形図を表示します。いいえはい
TRAFFIC_FLOW交通流の速度。はいはい
TRAFFIC_INCIDENTS交通事案。はいはい
VEHICLE_RESTRICTIONS車両制限。いいえはい
TRAFFIC_LIGHTS信号機。はいはい

マップフィーチャーレイヤーを有効にする方法を以下に示します。

Map<String, String> mapFeatures = new HashMap<>();
mapFeatures.put(MapFeatures.BUILDING_FOOTPRINTS, MapFeatureModes.BUILDING_FOOTPRINTS_ALL);
mapFeatures.put(MapFeatures.CONTOURS, MapFeatureModes.CONTOURS_ALL);  // Only available with the Navigate license.
mapFeatures.put(MapFeatures.CONGESTION_ZONES, MapFeatureModes.CONGESTION_ZONES_ALL);
mapFeatures.put(MapFeatures.ENVIRONMENTAL_ZONES, MapFeatureModes.ENVIRONMENTAL_ZONES_ALL);
mapFeatures.put(MapFeatures.EXTRUDED_BUILDINGS, MapFeatureModes.EXTRUDED_BUILDINGS_ALL);
mapFeatures.put(MapFeatures.LANDMARKS, MapFeatureModes.LANDMARKS_TEXTURED); // Only available with the Navigate license.
mapFeatures.put(MapFeatures.ROAD_EXIT_LABELS, MapFeatureModes.ROAD_EXIT_LABELS_ALL); // Only available with the Navigate license.
mapFeatures.put(MapFeatures.SAFETY_CAMERAS, MapFeatureModes.DEFAULT);
mapFeatures.put(MapFeatures.SHADOWS, MapFeatureModes.SHADOWS_ALL);
mapFeatures.put(MapFeatures.TERRAIN, MapFeatureModes.DEFAULT); // Only available with the Navigate license.
mapFeatures.put(MapFeatures.TRAFFIC_FLOW, MapFeatureModes.DEFAULT);
mapFeatures.put(MapFeatures.TRAFFIC_INCIDENTS, MapFeatureModes.DEFAULT);
mapFeatures.put(MapFeatures.LOW_SPEED_ZONES, MapFeatureModes.LOW_SPEED_ZONES_ALL);
mapFeatures.put(MapFeatures.VEHICLE_RESTRICTIONS, MapFeatureModes.DEFAULT); // Only available with the Navigate license.
mapFeatures.put(MapFeatures.AMBIENT_OCCLUSION, MapFeatureModes.AMBIENT_OCCLUSION_ALL);
mapFeatures.put(MapFeatures.PUBLIC_TRANSIT, MapFeatureModes.PUBLIC_TRANSIT_ALL); // Only available with the Navigate license.
mapView.getMapScene().enableFeatures(mapFeatures);
val mapFeatures: MutableMap<String, String> = HashMap()
mapFeatures[MapFeatures.BUILDING_FOOTPRINTS] = MapFeatureModes.BUILDING_FOOTPRINTS_ALL
mapFeatures[MapFeatures.CONTOURS] = MapFeatureModes.CONTOURS_ALL
mapFeatures[MapFeatures.CONGESTION_ZONES] = MapFeatureModes.CONGESTION_ZONES_ALL
mapFeatures[MapFeatures.ENVIRONMENTAL_ZONES] = MapFeatureModes.ENVIRONMENTAL_ZONES_ALL
mapFeatures[MapFeatures.EXTRUDED_BUILDINGS] = MapFeatureModes.EXTRUDED_BUILDINGS_ALL
mapFeatures[MapFeatures.LANDMARKS] = MapFeatureModes.LANDMARKS_TEXTURED
mapFeatures[MapFeatures.ROAD_EXIT_LABELS] = MapFeatureModes.ROAD_EXIT_LABELS_ALL
mapFeatures[MapFeatures.SAFETY_CAMERAS] = MapFeatureModes.DEFAULT
mapFeatures[MapFeatures.SHADOWS] = MapFeatureModes.SHADOWS_ALL
mapFeatures[MapFeatures.TERRAIN] = MapFeatureModes.DEFAULT
mapFeatures[MapFeatures.TRAFFIC_FLOW] = MapFeatureModes.DEFAULT
mapFeatures[MapFeatures.TRAFFIC_INCIDENTS] = MapFeatureModes.DEFAULT
mapFeatures[MapFeatures.LOW_SPEED_ZONES] = MapFeatureModes.LOW_SPEED_ZONES_ALL
mapFeatures[MapFeatures.VEHICLE_RESTRICTIONS] = MapFeatureModes.DEFAULT
mapFeatures[MapFeatures.AMBIENT_OCCLUSION] = MapFeatureModes.AMBIENT_OCCLUSION_ALL
mapFeatures[MapFeatures.PUBLIC_TRANSIT] = MapFeatureModes.PUBLIC_TRANSIT_ALL
mapView!!.mapScene.enableFeatures(mapFeatures)

新しいマップシーンが読み込まれると (異なるマップスキーム間で切り替える場合など)、以前に設定されたすべてのマップフィーチャーがデフォルト状態にリセットされます。シーンの読み込み操作を行うたびに、目的のマップフィーチャーを再度有効にする必要があります。

新しいレイヤー状態の設定は同期的に実行されますが、事前読み込み済みの有効なマップシーンが必要です。また、新しいマップシーンの読み込み中に新しいフィーチャー状態を設定すると、例外が発生する場合があります。

同様に、次のようにレイヤーのリストを無効にすることもできます。

List<String> mapFeatures = new ArrayList<>();
mapFeatures.add(MapFeatures.TRAFFIC_FLOW);
mapFeatures.add(MapFeatures.TRAFFIC_INCIDENTS);
mapFeatures.add(MapFeatures.EXTRUDED_BUILDINGS);
mapFeatures.add(MapFeatures.AMBIENT_OCCLUSION);
mapView.getMapScene().disableFeatures(mapFeatures);
val mapFeatures: MutableList<String> = ArrayList()
mapFeatures.add(MapFeatures.TRAFFIC_FLOW)
mapFeatures.add(MapFeatures.TRAFFIC_INCIDENTS)
mapFeatures.add(MapFeatures.EXTRUDED_BUILDINGS)
mapFeatures.add(MapFeatures.AMBIENT_OCCLUSION)
mapView!!.mapScene.disableFeatures(mapFeatures)

TRAFFIC_FLOW機能とTRAFFIC_INCIDENTS機能が有効になると、HERE SDKは新しいベクタータイルごとに新しいトラフィック情報を要求します。これはたとえば、ビューポートのパンやズームで発生します。このため、計画によってはコストが増加する可能性があります。MapContentSettingsを使用すると、交通流と交通事案の更新期間を調整できますが、ビューポートの変更によって上書きされる可能性があります。ターン・バイ・ターンナビ中はこれが1秒間に複数回発生する可能性があり、トラフィックベクタータイルのリクエストが大量に発生する可能性があります。代替策として、TrafficOnRouteを使用して、ルート沿いの交通情報の表示のみを更新することを検討してください。

各マップフィーチャーは、1つ以上の代替レンダリングオプションをサポートしています。Navigateライセンスを使って、たとえば、TERRAINのデフォルトモードであるTERRAIN_HILLSHADEを使用する代わりに、TERRAIN_3Dを使用することで、真の3D地形マップビューで丘陵の地形の陰影を表示できます。

以下に、HERE SDKでサポートされるすべてのマップレイヤーのスクリーンショットを示します。すべてのライセンスですべてのフィーチャーレイヤーが利用できるわけではないことに注意してください。

スクリーンショット (左から右):MapFeatures.BUILDING_FOOTPRINTSとMapFeatureModes.BUILDING_FOOTPRINTS_ALLを組み合わせて、建物の2Dフットプリントを表示。MapFeatures.EXTRUDED_BUILDINGS と MapFeatureModes.EXTRUDED_BUILDINGS_ALL を組み合わせて、建物の 3D 表現を表示。MapFeatures.BUILDING_FOOTPRINTSとMapFeatures.EXTRUDED_BUILDINGSはデフォルトで有効になっている。無効にしたときの外観。 スクリーンショット (左から右):MapFeatures.LANDMARKSとMapFeatureModes.LANDMARKS_TEXTUREDを組み合わせて、テクスチャ付きのランドマークを表示。MapFeatureModes.LANDMARKS_TEXTURELESSと組み合わせると、テクスチャなしのランドマークが表示される。MapFeatureModes.LANDMARKS_GRAYSCALEと組み合わせると、ランドマークテクスチャがグレースケールで表示される。 スクリーンショット:MapFeatures.CONTOURSとMapFeatureModes.CONTOURS_ALLを組み合わせて、地図に高度の変化を示す等高線を表示 (Navigateライセンスでのみ使用可能)。 スクリーンショット (左から右):MapFeatures.CONGESTION_ZONESとMapFeatureModes.CONGESTION_ZONES_ALLを組み合わせて、渋滞課金ゾーンとして指定された都市部を紫色のシェードで表示(渋滞課金ゾーンとは、ドライバーが進入または通行する際に料金を支払う必要がある地域です)。MapFeatures.ENVIRONMENTAL_ZONESとMapFeatureModes.ENVIRONMENTAL_ZONES_ALLを組み合わせて、環境ゾーンとして指定された都市部を青緑色で表示 (環境ゾーンとは、低二酸化炭素排出量ゾーンとして、特定の車両のアクセスが制限されている都市または地域の指定エリアです)。 スクリーンショット (左から右):MapFeatures.ROAD_EXIT_LABELSとMapFeatureModes.ROAD_EXIT_LABELS_NUMBERS_ONLYを組み合わせて、道路出口ラベルを番号で表示。MapFeatureModes.ROAD_EXIT_LABELS_ALLと組み合わせた場合は、道路出口ラベルがテキストで表示される (Navigateライセンスでのみ使用可能)。 スクリーンショット:MapFeatures.SAFETY_CAMERASとMapFeatureModes.SAFETY_CAMERAS_ALLを組み合わせて、速度警告カメラを表示。 スクリーンショット:MapFeatures.SHADOWSとMapFeatureModes.SHADOWS_ALLを組み合わせて、すべての建物タイプ (立体的な建物やランドマーク) の影を表示。 スクリーンショット:MapFeatures.TERRAINとMapFeatureModes.TERRAIN_HILLSHADEを組み合わせて、丘陵の地形の陰影を表示 (Navigateライセンスでのみ使用可能)。 スクリーンショット:MapFeatures.TERRAINとMapFeatureModes.TERRAIN_3Dを組み合わせて、3D地形マップ上の丘陵の地形の陰影を表示 (Navigateライセンスでのみ使用可能)。 スクリーンショット (左から右):MapFeatures.TRAFFIC_FLOWとMapFeatureModes.TRAFFIC_FLOW_WITH_FREE_FLOWを組み合わせて、道路上の現在の交通渋滞を表示。渋滞が発生していない場合は緑色の線で表示される。MapFeatureModes.TRAFFIC_FLOW_WITHOUT_FREE_FLOWと組み合わせると、渋滞が発生していない場合に緑色の線が表示されない。MapFeatureModes.TRAFFIC_FLOW_JAPAN_WITHOUT_FREE_FLOWと組み合わせると、渋滞が発生していない場合に緑色の線が表示されない。 スクリーンショット:MapFeatures.TRAFFIC_INCIDENTS with MapFeatureModes.TRAFFIC_INCIDENTS_ALLを組み合わせて、事故や工事などのインシデントを表示。 スクリーンショット (左から右):MapFeatures.VEHICLE_RESTRICTIONSとMapFeatureModes.VEHICLE_RESTRICTIONS_ACTIVEを組み合わせて、トラック固有の情報の、アクティブな制約のみを表示。MapFeatureModes.VEHICLE_RESTRICTIONS_ACTIVE_AND_INACTIVEと組み合わせると、トラック固有の情報の、アクティブおよび非アクティブな時間ベースの制約が表示される。MapFeatureModes.VEHICLE_RESTRICTIONS_ACTIVE_AND_INACTIVE_DIFFERENTIATEDと組み合わせると、トラック固有の情報の、アクティブおよび非アクティブな時間ベースの制約が表示されるが、非アクティブな時間ベースの制約は薄く表示される (Navigateライセンスでのみ使用可能)。 スクリーンショット (左から右):左側ではアンビエントオクルージョンが無効化されており、右側ではMapFeatures.AMBIENT_OCCLUSIONとMapFeatureModes.AMBIENT_OCCLUSION_ALLを使用してアンビエントオクルージョンが有効化され、より強調された陰影と奥行き効果が表現されている。 スクリーンショット:MapFeatures.PUBLIC_TRANSITとMapFeatureModes.PUBLIC_TRANSIT_ALL (Navigateライセンスでのみ使用可能)。 スクリーンショット:MapFeatures.TRUCK_PREFERRED_ROADSとMapFeatureModes.TRUCK_PREFERRED_ROADS_ALL (Navigateライセンスでのみ使用可能)。 スクリーンショット:MapFeatures.TRAFFIC_LIGHTSとMapFeatureModes.TRAFFIC_LIGHTS_ALL

一部のレイヤーでは、MapContentSettingsを使用して、表示されているコンテンツを絞り込めます。

  • MapFeatures.TRAFFIC_INCIDENTSfilterTrafficIncidents​(List<TrafficIncidentType> trafficIncidents) を使用して、表示されている交通事案を絞り込めます。
  • MapFeatures.VEHICLE_RESTRICTIONSconfigureVehicleRestrictionFilter​(TransportSpecification transportSpecs) を使用して、表示されているトラックの制約を絞り込めます。

BUILDING_FOOTPRINTSEXTRUDED_BUILDINGSのマップレイヤーは、MapViewではデフォルトで有効になっています。

ベータリリース:現在は、昼間、夜間、ハイブリッド昼間、ハイブリッド夜間のマップスキームでもMapFeatureModes.TERRAIN_3Dをサポートしています (Navigateライセンスでのみ使用可能)。

スクリーンショット (左から右):MapScheme.DAYとMapFeatureModes.TERRAIN_3D、MapScheme.NIGHTとMapFeatureModes.TERRAIN_3D、MapScheme.HYBRID_DAYとMapFeatureModes.TERRAIN_3D、MapScheme.HYBRID_NIGHTとMapFeatureModes.TERRAIN_3D (Navigateライセンスでのみ使用可能)。

押出建物のカバレージ

MapFeatures.EXTRUDED_BUILDINGS フィーチャーが有効になっている場合、建物はアウトライン付きの 3D でレンダリングされます。建物の外観は国によって異なる場合があります。たとえば、日本ではアウトラインが色付きの建物の壁と組み合わされることがあります。

デフォルトでは、押出建物はほとんどの国でサポートされています。

詳細な日本地図は、別途HEREとの契約が必要となります。

スクリーンショット (左から右):日本以外の地域の押出建物、日本地図の押出建物。

MapFeaturesサンプルアプリを試す

上記のコードスニペットのほとんどは、「MapFeatures」サンプルアプリ (Java版とKotlin版) で利用できます。このサンプルアプリは、GitHubでお好みのプラットフォームのものを見つけることができます。


このページは役に立ちましたか?