QGeoRoutingManagerEngine Class
QGeoRoutingManagerEngine クラスは、地理的なルーティング情報へのアクセスを提供したいQGeoServiceProvider プラグインの実装者に、インターフェイスと便利なメソッドを提供します。詳細...
Header: | #include <QGeoRoutingManagerEngine> |
qmake: | QT += location |
Inherits: | QObject |
パブリック関数
QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr) | |
virtual | ~QGeoRoutingManagerEngine() |
virtual QGeoRouteReply * | calculateRoute(const QGeoRouteRequest &request) = 0 |
QLocale | locale() const |
QString | managerName() const |
int | managerVersion() const |
QLocale::MeasurementSystem | measurementSystem() const |
void | setLocale(const QLocale &locale) |
void | setMeasurementSystem(QLocale::MeasurementSystem system) |
QGeoRouteRequest::FeatureTypes | supportedFeatureTypes() const |
QGeoRouteRequest::FeatureWeights | supportedFeatureWeights() const |
QGeoRouteRequest::ManeuverDetails | supportedManeuverDetails() const |
QGeoRouteRequest::RouteOptimizations | supportedRouteOptimizations() const |
QGeoRouteRequest::SegmentDetails | supportedSegmentDetails() const |
QGeoRouteRequest::TravelModes | supportedTravelModes() const |
virtual QGeoRouteReply * | updateRoute(const QGeoRoute &route, const QGeoCoordinate &position) |
シグナル
void | errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString()) |
void | finished(QGeoRouteReply *reply) |
保護された関数
void | setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes) |
void | setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights) |
void | setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails) |
void | setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations) |
void | setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails) |
void | setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes) |
詳細説明
注意: バックエンドのクラスはソースやバイナリの互換性が保証されていません。APIは開発されたQtのバージョンでのみ動作が保証されています。API の変更はマイナーリリースでのみ行われます。(6.6 や 6.7 など)。
QGeoRoutingManagerEngine のサブクラスは、calculateRoute() の実装を提供する必要があります。
デフォルトの実装では、supportsRouteUpdates() は false を返し、updateRoute() はQGeoRouteReply::UnsupportedOptionError を含むQGeoRouteReply オブジェクトを返します。
ルーティング・サービスが走行中のルートの更新をサポートする場合、サブクラスはupdateRoute() の実装を提供し、updateRoute() が呼び出される前のある時点で setSupportsRouteUpdates(true) を呼び出す必要があります。
関数 setSupportsRouteUpdates() は、エンジンの報告された能力を構成するいくつかの関数の1つです。エンジンの能力がデフォルト値と異なる場合は、報告される能力が正確であるように、これらの関数を使用する必要があります。
不正確な動作や一貫性のない動作を防ぐために、calculateRoute() やupdateRoute() などの能力レポート関数を使用する前に、この処理を行うことが重要です。
QGeoRouteManagerEngine のサブクラスは、エンジンによって使用されるQGeoRouteReply インスタンスにエンジン固有のデータ(ネットワーク ベースのサービス用のQNetworkReply オブジェクトなど)を追加するために、内部的にサブクラス foQGeoRouteReply を使用することがよくあります。
QGeoRoutingManagerも参照してください 。
メンバ関数 ドキュメント
[explicit]
QGeoRoutingManagerEngine::QGeoRoutingManagerEngine(const QVariantMap ¶meters, QObject *parent = nullptr)
指定されたparent で新しいエンジンを構築します。parameters を使用して、エンジンに実装固有のデータを渡します。
[virtual noexcept]
QGeoRoutingManagerEngine::~QGeoRoutingManagerEngine()
このエンジンを破棄します。
[pure virtual]
QGeoRouteReply *QGeoRoutingManagerEngine::calculateRoute(const QGeoRouteRequest &request)
request で指定されたルートの計算を開始します。
QGeoRouteReply オブジェ ク ト が返 さ れます。 こ れは、 ルーテ ィ ン グ処理を管理 し 、 処理結果を返す ために使用で き ます。
このエンジンと返されたQGeoRouteReply オブジェクトは、操作が完了した場合やエラーが発生した場合を示すシグナルを発する。
操作が完了すると、QGeoRouteReply::routes を使用して、計算されたルートを取得することができます。
このエンジンのメソッドによって報告されたように、request にこのエンジンでサポートされていない機能が含まれている場合、QGeoRouteReply::UnsupportedOptionError が発生します。
返されたリプライ・オブジェクトを削除するのはユーザーの責任ですが、これはQGeoRoutingManagerEngine::finished(),QGeoRoutingManagerEngine::errorOccurred(),QGeoRouteReply::finished(),QGeoRouteReply::errorOccurred() に接続されたスロットで、deleteLater() を使って行うことができます。
[signal]
void QGeoRoutingManagerEngine::errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString())
このシグナルは、reply の処理でエラーが検出されたときに発せられる。QGeoRoutingManagerEngine::finished() シグナルは、おそらくその後に続く。
エラーは、エラー・コードerror で示される。errorString が空でない場合、エラーのテキスト記述が含まれる。
このシグナルとQGeoRouteReply::errorOccurred() は同時に発せられる。
注意: このシグナルに接続されたスロット内のreply オブジェクトを削除しないでください。代わりにdeleteLater() を使用してください。
[signal]
void QGeoRoutingManagerEngine::finished(QGeoRouteReply *reply)
このシグナルは、reply の処理が終了したときに発せられます。
reply::error() がQGeoRouteReply::NoError に等しい場合、処理は正常に終了しています。
このシグナルとQGeoRouteReply::finished() は同時に発せられます。
注意: このシグナルに接続されているスロットのreply オブジェクトを削除しないでください。代わりにdeleteLater() を使用してください。
QLocale QGeoRoutingManagerEngine::locale() const
このルーティング・マネージャが、アドレスや命令にどの言語を使用するかのヒントに使用するロケールを返します。
setLocale()も参照してください 。
QString QGeoRoutingManagerEngine::managerName() const
このエンジンの実装が、他のプラグインが提供する実装と区別するために使用する名前を返します。
managerName() とmanagerVersion() の組み合わせは、プラグイン実装の中で一意でなければなりません。
int QGeoRoutingManagerEngine::managerVersion() const
このエンジン実装のバージョンを返します。
managerName() と managerVersion() の組み合わせは、プラグイン実装間で一意でなければなりません。
QLocale::MeasurementSystem QGeoRoutingManagerEngine::measurementSystem() const
このマネージャが使用する計測システムを返します。
setMeasurementSystem() が呼び出された場合、この関数が返す値はlocale().measurementSystem() が返す値と異なる可能性があります。この場合、この関数が返す値が、マネージャが使用する値となる。
setMeasurementSystem() およびsetLocale()も参照 。
void QGeoRoutingManagerEngine::setLocale(const QLocale &locale)
このマネージャが使用するロケールをlocale に設定します。
このルーティングマネージャが異なる言語でのアドレスや命令を返すことをサポートしている場合、それらはlocale の言語で返されます。
これが設定されていない場合、使用されるロケールのデフォルトはシステムロケールです。
locale()も参照 。
void QGeoRoutingManagerEngine::setMeasurementSystem(QLocale::MeasurementSystem system)
このマネージャが使用する測定システムをsystem に設定します。
測定システムは、ロケールとは無関係に設定できます。setLocale() とこの関数の両方が測定システムを設定します。最後に呼び出された関数によって設定された値が使用されます。
measurementSystem()、locale()、setLocale()も参照 。
[protected]
void QGeoRoutingManagerEngine::setSupportedFeatureTypes(QGeoRouteRequest::FeatureTypes featureTypes)
このエンジンがルート計画中に考慮できる機能の種類をfeatureTypes に設定します。
サブクラスがこのメソッドを使用することは、エンジンがその機能を正しく報告するために重要です。こ の関数を使用 し ない と 、 エン ジ ンは機能 タ イ プを一切サポー ト し ていない こ と を報告 し ます。
supportedFeatureTypes()も参照してください 。
[protected]
void QGeoRoutingManagerEngine::setSupportedFeatureWeights(QGeoRouteRequest::FeatureWeights featureWeights)
このエンジンがルート計画中にさまざまなフィーチャに適用できる重み付けをfeatureWeights に設定します。
サブクラスがこのメソッドを使用することは、エンジンがその機能を正しくレポートするために重要です。この関数を使用しない場合、エンジンはフィーチャの重みをまったくサポートしていないと報告します。
supportedFeatureWeights()も参照してください 。
[protected]
void QGeoRoutingManagerEngine::setSupportedManeuverDetails(QGeoRouteRequest::ManeuverDetails maneuverDetails)
このエンジンが要求できるナビゲーション操作の詳細レベルをmaneuverDetails に設定します。
サブクラスがこのメソッドを使用することは、エンジンがその能力を正しく報告するために重要です。こ の関数を使用 し ない と 、 エン ジ ンはマヌーバの詳細を一切サポー ト し ていない こ と を報告 し ます。
supportedManeuverDetails()も参照してください 。
[protected]
void QGeoRoutingManagerEngine::setSupportedRouteOptimizations(QGeoRouteRequest::RouteOptimizations optimizations)
このエンジンがサポートするルート最適化をoptimizations に設定します。
サブクラスがこのメソッドを使用して、エンジンがその能力を正しく報告するようにすることが重要です。この関数を使用しないと、エンジンはルート最適化をまったくサポートしていないと報告します。
supportedRouteOptimizations()も参照してください 。
[protected]
void QGeoRoutingManagerEngine::setSupportedSegmentDetails(QGeoRouteRequest::SegmentDetails segmentDetails)
このエンジンが要求できるルーティング・セグメントの詳細レベルをsegmentDetails に設定します。
サブクラスがこのメソッドを使用することは、エンジンがその能力を正しく報告するために重要です。この関数を使用しないと、エンジンはセグメントの詳細をまったくサポートしていないことを報告します。
supportedSegmentDetails()も参照してください 。
[protected]
void QGeoRoutingManagerEngine::setSupportedTravelModes(QGeoRouteRequest::TravelModes travelModes)
このエンジンがサポートするトラベル モードをtravelModes に設定します。
サブクラスがこのメソッドを使用して、エンジンがその機能を正しくレポートするようにすることが重要です。こ の関数を使用 し ない と 、 エン ジ ンは移動モー ド を一切サポー ト し ていない こ と を報告 し ます。
supportedTravelModes()も参照してください 。
QGeoRouteRequest::FeatureTypes QGeoRoutingManagerEngine::supportedFeatureTypes() const
このエンジンがルート計画中に考慮できる機能の種類を返します。
setSupportedFeatureTypes() も参照して ください。
QGeoRouteRequest::FeatureWeights QGeoRoutingManagerEngine::supportedFeatureWeights() const
このエンジンがルート計画中にさまざまな特徴に適用できる重み付けを返します。
setSupportedFeatureWeights() も参照して ください。
QGeoRouteRequest::ManeuverDetails QGeoRoutingManagerEngine::supportedManeuverDetails() const
このエンジンが要求できる、ナビゲーション操作の詳細レベルを返します。
setSupportedManeuverDetails() も参照して ください。
QGeoRouteRequest::RouteOptimizations QGeoRoutingManagerEngine::supportedRouteOptimizations() const
このエンジンがサポートするルート最適化を返します。
setSupportedRouteOptimizations() も参照して ください。
QGeoRouteRequest::SegmentDetails QGeoRoutingManagerEngine::supportedSegmentDetails() const
このエンジンが要求できる、ルーティング・セグメントの詳細レベルを返します。
setSupportedSegmentDetails() も参照して ください。
QGeoRouteRequest::TravelModes QGeoRoutingManagerEngine::supportedTravelModes() const
このエンジンがサポートする移動モードを返します。
setSupportedTravelModes() も参照して ください。
[virtual]
QGeoRouteReply *QGeoRoutingManagerEngine::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
現在の位置position に基づいてroute を更新する処理を開始します。
QGeoRouteReply オブジェクトが返され、ルーティング操作の管理と操作結果の返送に使用できる。
このエンジンと返されたQGeoRouteReply オブジェクトは、操作が完了したか、エラーが発生したかを示すシグナルを発します。
supportsRouteUpdates()がfalseを返すと、QGeoRouteReply::UnsupportedOptionError 。
操作が完了すると、QGeoRouteReply::routes 、更新されたルートを取得することができます。
返されるルートは、特にposition が最初のルートから十分に離れている場合、元のルートとはまったく異なる可能性があります。そうでなければ、ルートは似ていますが、残りの時間と距離は更新され、元のルートの通過したセグメントは削除されます。
返されたリプライ・オブジェクトを削除するのはユーザーの責任ですが、これはQGeoRoutingManagerEngine::finished(),QGeoRoutingManagerEngine::errorOccurred(),QGeoRouteReply::finished(),QGeoRouteReply::errorOccurred() とdeleteLater() に接続されたスロットで行うことができます。
ここに含まれる文書の著作権はそれぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。