QGeoRoutingManager Class
QGeoRoutingManager クラスは、地理的なルーティング操作のサポートを提供します。詳細...
Header: | #include <QGeoRoutingManager> |
qmake: | QT += location |
Inherits: | QObject |
パブリック関数
virtual | ~QGeoRoutingManager() |
QGeoRouteReply * | calculateRoute(const QGeoRouteRequest &request) |
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 |
QGeoRouteReply * | updateRoute(const QGeoRoute &route, const QGeoCoordinate &position) |
シグナル
void | errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString()) |
void | finished(QGeoRouteReply *reply) |
詳細説明
calculateRoute() とupdateRoute() メソッドは、これらの操作を管理し、操作の結果と発生した可能性のあるエラーを報告するQGeoRouteReply オブジェクトを関数化します。
calculateRoute() 関数は、ウェイポイントのセットに従い、他のさまざまな条件に一致するルート(または複数 のルート)を見つけるために使用されます。QGeoRouteRequest クラスは、この情報を指定するために使用されます。
supportsRouteUpdates()がtrueを返す場合、QGeoRoutingManagerは位置の更新に基づくルート情報の更新をサポートしています。これにより、移動時間と距離の見積もりが更新され、すでに通過した QGeoRouteSegment はルートから削除されます。
この更新は、updateRoute() 関数でトリガーすることができる。この関数は、QGeoPositionInfoSource によって位置の更新として発行されたQGeoPositionInfo インスタンスを利用する。
QGeoRoutingManager のインスタンスにはQGeoServiceProvider::routingManager() でアクセスできます。
QGeoRoutingManager と QGeoRouteRequests の小さな使用例を以下に示す:
class RouteHandler : public QObject { Q_OBJECT public: RouteHandler(QGeoRoutingManager *routingManager, const QGeoCoordinate &origin, const QGeoCoordinate &destination) { QGeoRouteRequest request(origin, destination); // The request defaults to the fastest route by car, which is // equivalent to: // request.setTravelMode(QGeoRouteRequest::CarTravel); // request.setRouteOptimization(QGeoRouteRequest::FastestRoute); request.setAvoidFeatureTypes(QGeoRouteRequest::AvoidTolls); request.setAvoidFeatureTypes(QGeoRouteRequest::AvoidMotorPoolLanes); QGeoRouteRequest::AvoidFeaturesTypes avoidableFeatures = routingManager->supportedAvoidFeatureTypes(); if (!(avoidableFeatures & request.avoidFeatureTypes())) { // ... inform the user that the routing manager does not // provide support for avoiding tolls and/or motor pool lanes ... return; } QGeoRouteReply *reply = routingManager->calculateRoute(request); if (reply->isFinished()) { if (reply->error() == QGeoRouteReply::NoError) { routeCalculated(reply); } else { routeError(reply, reply->error(), reply->errorString()); } return; } connect(routingManager, &QGeoRoutingManager::finished, this, &RouteHandler::routeCalculated); connect(routingManager, &QGeoRoutingManager::errorOccurred, this, &RouteHandler::routeError); } private slots: void routeCalculated(QGeoRouteReply *reply) { // A route request can ask for several alternative routes ... if (reply->routes().size() != 0) { // ... but by default it will only get a single route QGeoRoute route = reply->routes().at(0); //... now we have to make use of the route ... } reply->deleteLater(); } void routeError(QGeoRouteReply *reply, QGeoRouteReply:Error error, const QString &errorString) { // ... inform the user that an error has occurred ... reply->deleteLater(); } };
メンバー関数ドキュメント
[virtual noexcept]
QGeoRoutingManager::~QGeoRoutingManager()
この監督を破壊する。
QGeoRouteReply *QGeoRoutingManager::calculateRoute(const QGeoRouteRequest &request)
request で指定された経路の計算を開始する。
QGeoRouteReply オブジェクトが返される。このオブジェクトは、経路計算を管理したり、計算結果を返したりするのに使用できる。
このマネージャと返されたQGeoRouteReply オブジェクトは、操作が完了した場合やエラーが発生した場合を示すシグナルを発します。
操作が完了したら、QGeoRouteReply::routes を使って、計算されたルートや経路を取り出すことができます。
このマネージャのメソッドによって報告されるように、request にこのマネージャがサポートしていない機能が含まれている場合、QGeoRouteReply::UnsupportedOptionError が発生します。
返された応答オブジェクトを削除するのはユーザの責任であるが、これはQGeoRoutingManager::finished()、QGeoRoutingManager::errorOccurred()、QGeoRouteReply::finished()、またはQGeoRouteReply::errorOccurred() に接続されたスロットで、deleteLater() を使用して行うことができる。
[signal]
void QGeoRoutingManager::errorOccurred(QGeoRouteReply *reply, QGeoRouteReply::Error error, const QString &errorString = QString())
このシグナルは、reply の処理でエラーが検出されたときに発せられる。QGeoRoutingManager::finished() シグナルは、おそらくその後に続く。
エラーはエラーコードerror で示される。errorString が空でない場合、エラーのテキスト記述が含まれる。
このシグナルとQGeoRouteReply::errorOccurred() は同時に発せられる。
注意: このシグナルに接続されたスロット内のreply オブジェクトを削除しないでください。代わりにdeleteLater() を使用してください。
[signal]
void QGeoRoutingManager::finished(QGeoRouteReply *reply)
このシグナルは、reply の処理が終了したときに発せられる。
reply::error() がQGeoRouteReply::NoError と等しい場合、処理は正常に終了した。
このシグナルとQGeoRouteReply::finished() は同時に発せられる。
注意: このシグナルに接続されているスロットのreply オブジェクトを削除しないでください。代わりにdeleteLater() を使用してください。
QLocale QGeoRoutingManager::locale() const
このルーティングマネージャがアドレスや命令にどの言語を使うかのヒントに使用するロケールを返します。
setLocale()も参照ください 。
QString QGeoRoutingManager::managerName() const
このルーティングマネージャの振る舞いを実装するエンジンの名前を返します。
managerName() とmanagerVersion() の組み合わせは、プラグインの実装の中で一意でなければなりません。
int QGeoRoutingManager::managerVersion() const
このルーチンマネージャの振る舞いを実装するエンジンのバージョンを返します。
managerName() と managerVersion() の組み合わせは、プラグインの実装の中で一意でなければなりません。
QLocale::MeasurementSystem QGeoRoutingManager::measurementSystem() const
このマネージャが使用する測定システムを返す。
setMeasurementSystem() が呼び出された場合、この関数が返す値は、locale() が返す値とは異なる可能性がある。measurementSystem().その場合、この関数が返す値が、マネージャが使用する値となる。
setMeasurementSystem() およびsetLocale()も参照 。
void QGeoRoutingManager::setLocale(const QLocale &locale)
このマネージャが使用するロケールをlocale に設定します。
このルーティングマネージャが異なる言語でのアドレスや命令を返すことをサポートしている場合、それらはlocale の言語で返されます。
これが設定されていない場合、使用されるロケールのデフォルトはシステムロケールです。
locale()も参照のこと 。
void QGeoRoutingManager::setMeasurementSystem(QLocale::MeasurementSystem system)
このマネージャが使用する測定システムをsystem に設定します。
測定システムはロケールとは無関係に設定できる。setLocale() とこの関数の両方が測定システムを設定する。最後に呼び出された関数によって設定された値が使用されます。
measurementSystem()、locale()、およびsetLocale()も参照してください 。
QGeoRouteRequest::FeatureTypes QGeoRoutingManager::supportedFeatureTypes() const
このマネージャーがルート計画中に考慮できる機能の種類を返します。
QGeoRouteRequest::FeatureWeights QGeoRoutingManager::supportedFeatureWeights() const
このマネージャがルート計画中に異なる特徴に適用できる重み付けを返します。
QGeoRouteRequest::ManeuverDetails QGeoRoutingManager::supportedManeuverDetails() const
このマネージャが要求できるナビゲーション操作の詳細レベルを返します。
QGeoRouteRequest::RouteOptimizations QGeoRoutingManager::supportedRouteOptimizations() const
このマネージャーがサポートするルート最適化を返します。
QGeoRouteRequest::SegmentDetails QGeoRoutingManager::supportedSegmentDetails() const
このマネージャーでリクエスト可能なルーティングセグメントの詳細レベルを返します。
QGeoRouteRequest::TravelModes QGeoRoutingManager::supportedTravelModes() const
このマネージャがサポートする旅行モードを返します。
QGeoRouteReply *QGeoRoutingManager::updateRoute(const QGeoRoute &route, const QGeoCoordinate &position)
現在の位置position に基づいてroute を更新する処理を開始する。
QGeoRouteReply オブジェクトが返される。このオブジェクトは、ルーティング操作の管理と操作結果の返送に使用できる。
このマネージャと返されたQGeoRouteReply オブジェクトは、操作が完了した場合やエラーが発生した場合を示すシグナルを発する。
supportsRouteUpdates()がfalseを返すと、QGeoRouteReply::UnsupportedOptionError 。
操作が完了すると、QGeoRouteReply::routes 、更新されたルートを取得することができます。
返されるルートは、特にposition が最初のルートから遠く離れている場合、元のルートとはまったく異なる可能性があります。そうでなければ、ルートは似ていますが、残りの時間と距離は更新され、元のルートの通過したセグメントは削除されます。
返されたリプライ・オブジェクトを削除するのはユーザーの責任であるが、これはQGeoRoutingManager::finished(),QGeoRoutingManager::errorOccurred(),QGeoRouteReply::finished(),QGeoRouteReply::errorOccurred() とdeleteLater() に接続されたスロットで行うことができる。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.