このページでは

QGeoCodingManagerEngine Class

QGeoCodingManagerEngine クラスは、QGeoServiceProvider プラグインの実装者がジオコーディング操作のサポートを提供したい場合に、インターフェースと便利なメソッドを提供します。詳細...

Header: #include <QGeoCodingManagerEngine>
qmake: QT += location
Inherits: QObject

パブリック関数

QGeoCodingManagerEngine(const QVariantMap &parameters, QObject *parent = nullptr)
virtual ~QGeoCodingManagerEngine()
virtual QGeoCodeReply *geocode(const QGeoAddress &address, const QGeoShape &bounds)
virtual QGeoCodeReply *geocode(const QString &address, int limit, int offset, const QGeoShape &bounds)
QLocale locale() const
QString managerName() const
int managerVersion() const
virtual QGeoCodeReply *reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds)
void setLocale(const QLocale &locale)

シグナル

void errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString())
void finished(QGeoCodeReply *reply)

詳細な説明

注: バックエンドクラスについては、ソースおよびバイナリの互換性は保証されません。 API は、開発時に使用された Qt バージョンでのみ動作が保証されます。ただし、API の変更はマイナーリリース(6.6、6.7 など)でのみ行われます。

デフォルトの実装では、supportsGeocoding() および supportsReverseGeocoding() は false を返し、geocode() およびreverseGeocode() はQGeoCodeReply::UnsupportedOptionError を発生させます。

サービスプロバイダがジオコーディングをサポートしている場合、サブクラスはgeocode()の実装を提供し、geocode()が呼び出される前の適切なタイミングでsetSupportsGeocoding(true)を呼び出す必要があります。

同様に、サービスプロバイダがリバースジオコーディングをサポートしている場合、サブクラスはreverseGeocode() の実装を提供し、reverseGeocode() が呼び出される前のいずれかの時点で setSupportsReverseGeocoding(true) を呼び出す必要があります。

QGeoCodingManagerEngine のサブクラスは、エンジン固有のデータ(ネットワークベースのサービス用のQNetworkReply オブジェクトなど)を、エンジンが使用するQGeoCodeReply インスタンスに追加するために、内部でQGeoCodeReply のサブクラスをよく利用します。

QGeoCodingManagerも参照してください 。

メンバ関数のドキュメント

[explicit] QGeoCodingManagerEngine::QGeoCodingManagerEngine(const QVariantMap &parameters, QObject *parent = nullptr)

指定されたparent を使用して新しいエンジンを構築し、parameters を通じて実装固有のデータをエンジンに渡します。

[virtual noexcept] QGeoCodingManagerEngine::~QGeoCodingManagerEngine()

このエンジンを破壊する。

[signal] void QGeoCodingManagerEngine::errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString())

このシグナルは、reply の処理中にエラーが検出された際に発せられます。その後、QGeoCodingManagerEngine::finished()シグナルが発せられる可能性があります。

エラーの内容は、エラーコードerror によって記述されます。errorString が空でなければ、そこにはエラーの説明文が含まれます。

このシグナルとQGeoCodeReply::errorOccurred() は同時に発火します。

注: このシグナルに接続されたスロット内で、reply オブジェクトを削除しないでください 。代わりにdeleteLater() を使用してください。

[signal] void QGeoCodingManagerEngine::finished(QGeoCodeReply *reply)

このシグナルは、reply の処理が完了したときに発せられます。

reply::error() の値が `QGeoCodeReply::NoError ` と等しい場合、処理は正常に完了しました。

このシグナルとQGeoCodeReply::finished()は同時に発火します。

注: このシグナルに接続されたスロット内で、reply オブジェクトを削除しないでください 。代わりにdeleteLater() を使用してください。

[virtual] QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QGeoAddress &address, const QGeoShape &bounds)

address のジオコーディングを開始します。ジオコーディングとは、指定された住所に対応する座標を特定する処理のことです。

QGeoCodeReply オブジェクトが返されます。このオブジェクトを使用して、ジオコーディング操作を管理したり、操作の結果を取得したりできます。

このエンジンと返される `QGeoCodeReply ` オブジェクトは、操作が完了したか、エラーが発生したかを示すシグナルを発行します。

supportsGeocoding() が false を返した場合、QGeoCodeReply::UnsupportedOptionError が発生します。

操作が完了すると、QGeoCodeReply::locations() を使用して結果を取得できます。結果は、QGeoLocation オブジェクトのリストで構成されます。これらのオブジェクトは、座標データと住所データの組み合わせを表します。

結果として返される住所データは、address と異なる場合があります。これは通常、ジオコーディングサービスのバックエンドが異なる標準形式の住所を使用している場合、またはaddress が部分的にしか入力されていない場合に発生します。

bounds がnullではなく、有効なQGeoShape である場合、このデータを使用して、結果をbounds に含まれるものに限定します。これは、address が部分的にしか入力されていない場合に特に有用です。サービスは、指定されたデータに一致するすべての項目に対してジオコーディングを試みるためです。

返された返信オブジェクトの削除はユーザーの責任となりますが、これはQGeoCodingManagerEngine::finished()、QGeoCodingManagerEngine::errorOccurred()、QGeoCodeReply::finished()、またはQGeoCodeReply::errorOccurred() に接続されたスロット内で、deleteLater() を使用して行うことができます。

[virtual] QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QString &address, int limit, int offset, const QGeoShape &bounds)

address に一致する場所のジオコーディングを開始します。

QGeoCodeReply オブジェクトが返されます。このオブジェクトを使用して、ジオコーディング操作を管理したり、操作の結果を取得したりできます。

このエンジンおよび返されるQGeoCodeReply オブジェクトは、操作が完了したか、エラーが発生したかを示すシグナルを発行します。

操作が完了したら、QGeoCodeReply::locations() を使用して結果を取得できます。結果は、QGeoLocation オブジェクトのリストで構成されます。これらのオブジェクトは、座標データと住所データの組み合わせを表します。

limit が -1 の場合、結果セット全体が返されます。それ以外の場合は、最大でlimit 個の結果が返されます。

offset パラメータは、ジオコーディングサービスに対し、最初のoffset 件の結果を返さないよう指定するために使用されます。

limit およびoffset の結果は、ページングを実装するために併用されます。

bounds が null ではなく、有効なQGeoShape である場合、その値は、bounds に含まれる結果に結果を制限するために使用されます。

返された reply オブジェクトの削除はユーザーの責任ですが、QGeoCodingManagerEngine::finished()、QGeoCodingManagerEngine::errorOccurred()、QGeoCodeReply::finished() またはQGeoCodeReply::errorOccurred() に接続されたスロット内で、deleteLater() を使用して削除を行うことも可能です。

QLocale QGeoCodingManagerEngine::locale() const

このジオコーディングマネージャーに対し、結果に使用する言語を指定するためのヒントとして用いられるロケールを返します。

setLocale()も参照してください 。

QString QGeoCodingManagerEngine::managerName() const

このエンジン実装が、他のプラグインによって提供される実装と区別するために使用する名前を返します。

managerName() とmanagerVersion() の組み合わせは、プラグインの実装間で一意である必要があります。

int QGeoCodingManagerEngine::managerVersion() const

このエンジン実装のバージョンを返します。

managerName() と managerVersion() の組み合わせは、プラグインの実装間で一意である必要があります。

[virtual] QGeoCodeReply *QGeoCodingManagerEngine::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds)

coordinate のリバースジオコーディングを開始します。リバースジオコーディングとは、指定された座標に対応する住所を特定する処理のことです。

QGeoCodeReply オブジェクトが返されます。このオブジェクトを使用して、逆ジオコーディング操作を管理したり、操作の結果を取得したりすることができます。

このエンジンおよび返されるQGeoCodeReply オブジェクトは、操作が完了したか、エラーが発生したかを示すシグナルを発行します。

supportsReverseGeocoding() が false を返した場合、QGeoCodeReply::UnsupportedOptionError が発生します。

その時点で、QGeoCodeReply::locations() を使用して、QGeoLocation オブジェクトのリストからなる結果を取得できます。これらのオブジェクトは、座標データと住所データの組み合わせを表しています。

結果として返される座標データは、coordinate とは異なる場合があります。これは通常、リバースジオコーディングサービスのバックエンドが、一致する住所に近づけるよう座標を調整した場合、またはバックエンドが複数の詳細レベルで結果を返す場合に発生します。

リバースジオコーディングサービスのバックエンドによって複数の結果が返される場合、それらは特定度の低い順に提供されます。これは通常、バックエンドが複数の詳細レベルにわたってリバースジオコーディングを行うように構成されている場合に発生します。例えば、一部のサービスでは、通り名、都市、州、国ごとの住所と座標のペアを返します。

bounds が null ではなく、有効なQGeoShape である場合、bounds に含まれる結果に限定するために使用されます。

返された返信オブジェクトの削除はユーザーの責任となりますが、QGeoCodingManagerEngine::finished()、QGeoCodingManagerEngine::errorOccurred()、QGeoCodeReply::finished() またはQGeoCodeReply::errorOccurred() に接続されたスロット内で、deleteLater() を使用して削除することも可能です。

void QGeoCodingManagerEngine::setLocale(const QLocale &locale)

このマネージャーが使用するロケールをlocale に設定します。

このジオコーディングマネージャーが異なる言語での結果の返却をサポートしている場合、結果はlocale で指定された言語で返されます。

これが設定されていない場合、使用されるロケールはデフォルトでシステムのロケールになります。

locale()も参照してください 。

© 2026 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.