QGeoCodingManager Class
QGeoCodingManager クラスは、ジオコーディング操作のサポートを提供します。詳細...
| Header: | #include <QGeoCodingManager> |
| qmake: | QT += location |
| Inherits: | QObject |
パブリック関数
| virtual | ~QGeoCodingManager() |
| QGeoCodeReply * | geocode(const QGeoAddress &address, const QGeoShape &bounds = QGeoShape()) |
| QGeoCodeReply * | geocode(const QString &address, int limit = -1, int offset = 0, const QGeoShape &bounds = QGeoShape()) |
| QLocale | locale() const |
| QString | managerName() const |
| int | managerVersion() const |
| QGeoCodeReply * | reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds = QGeoShape()) |
| void | setLocale(const QLocale &locale) |
シグナル
| void | errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString()) |
| void | finished(QGeoCodeReply *reply) |
詳細な説明
geocode() およびreverseGeocode() 関数は、QGeoCodeReply オブジェクトを返します。このオブジェクトは、これらの操作を管理し、操作の結果や発生したエラーを報告します。
geocode() およびreverseGeocode() 関数を使用すると、QGeoAddress インスタンスをQGeoCoordinate インスタンスに変換したり、その逆の変換を行ったりすることができます。
geocode() 関数はオーバーロードされており、ユーザーがフリーテキストのジオコーディング操作を実行できるようにしています。指定された文字列が住所として解釈できる場合、その文字列を座標情報にジオコーディングすることができます。
QGeoCodingManagerのインスタンスには、QGeoServiceProvider::geocodingManager() を通じてアクセスできます。
メンバ関数のドキュメント
[virtual noexcept] QGeoCodingManager::~QGeoCodingManager()
このマネージャーを破棄します。
[signal] void QGeoCodingManager::errorOccurred(QGeoCodeReply *reply, QGeoCodeReply::Error error, const QString &errorString = QString())
このシグナルは、reply の処理中にエラーが検出された際に発生します。その後、QGeoCodingManager::finished()シグナルが発生する可能性があります。
エラーの内容は、エラーコード `error` によって表されます。`errorString ` が空でなければ、そこにはエラーの説明文が含まれます。
このシグナルとQGeoCodeReply::errorOccurred() は同時に発信されます。
注: このシグナルに接続されたスロット内で、reply オブジェクトを削除しないでください 。代わりにdeleteLater() を使用してください。
[signal] void QGeoCodingManager::finished(QGeoCodeReply *reply)
このシグナルは、reply の処理が完了した際に発せられます。
reply::error() がQGeoCodeReply::NoError と等しい場合、処理は正常に完了しました。
このシグナルとQGeoCodeReply::finished()は同時に発火します。
注: このシグナルに接続されたスロット内で、reply オブジェクトを削除しないでください 。代わりに、deleteLater() を使用してください。
QGeoCodeReply *QGeoCodingManager::geocode(const QGeoAddress &address, const QGeoShape &bounds = QGeoShape())
address のジオコーディングを開始します。ジオコーディングとは、指定された住所に対応する座標を特定する処理のことです。
QGeoCodeReply オブジェクトが返されます。このオブジェクトを使用して、ジオコーディング操作を管理したり、操作の結果を取得したりすることができます。
このマネージャーと返される `QGeoCodeReply ` オブジェクトは、操作が完了したか、エラーが発生したかを示すシグナルを発行します。
supportsGeocoding() が false を返した場合、QGeoCodeReply::UnsupportedOptionError が発生します。
操作が完了したら、QGeoCodeReply::locations() を使用して結果を取得できます。結果は、QGeoLocation オブジェクトのリストで構成されます。これらのオブジェクトは、座標データと住所データの組み合わせを表しています。
結果として返される住所データは、address と異なる場合があります。これは通常、ジオコーディングサービスのバックエンドが異なる標準形式の住所を使用している場合、またはaddress が部分的にしか入力されていない場合に発生します。
bounds がnullではなく、有効なQGeoShape である場合、bounds に含まれる結果に結果を限定するためにそれが使用されます。これは、address が部分的にしか入力されていない場合に特に有用です。なぜなら、サービスは指定されたデータに一致するすべての項目に対してジオコーディングを試みるためです。
返された返信オブジェクトの削除はユーザーの責任となりますが、これはQGeoCodingManager::finished()、QGeoCodingManager::errorOccurred()、QGeoCodeReply::finished() またはQGeoCodeReply::errorOccurred() に接続されたスロット内で、deleteLater() を使用して行うことができます。
QGeoCodeReply *QGeoCodingManager::geocode(const QString &address, int limit = -1, int offset = 0, const QGeoShape &bounds = QGeoShape())
address に一致する場所のジオコーディングを開始します。
QGeoCodeReply オブジェクトが返されます。このオブジェクトは、ジオコーディング操作の管理や、操作結果の取得に使用できます。
このマネージャーと返される `QGeoCodeReply ` オブジェクトは、操作が完了したか、エラーが発生したかを示すシグナルを発行します。
操作が完了すると、QGeoCodeReply::locations() を使用して、QGeoLocation オブジェクトのリストからなる結果を取得できます。これらのオブジェクトは、座標データと住所データの組み合わせを表しています。
limit が-1の場合、結果セット全体が返されます。それ以外の場合は、最大でlimit 個の結果が返されます。
offset パラメータは、ジオコーディングサービスに対し、最初のoffset 件の結果を返さないよう指定するために使用されます。
limit とoffset の結果は、ページングを実装するために併用されます。
bounds が null ではなく、有効なQGeoShape である場合、その値を使用して、結果をbounds に含まれるものに限定します。
返された reply オブジェクトの削除はユーザーの責任ですが、QGeoCodingManager::finished()、QGeoCodingManager::errorOccurred()、QGeoCodeReply::finished() またはQGeoCodeReply::errorOccurred() に接続されたスロット内で、deleteLater() を使用して削除を行うことも可能です。
QLocale QGeoCodingManager::locale() const
このジオコーディング・マネージャーに対し、結果に使用する言語を指定するためのヒントとして用いられるロケールを返します。
setLocale()も参照してください 。
QString QGeoCodingManager::managerName() const
このジオコーディングマネージャの動作を実装しているエンジンの名前を返します。
managerName() とmanagerVersion() の組み合わせは、プラグインの実装間で一意である必要があります。
int QGeoCodingManager::managerVersion() const
このジオコーディングマネージャの動作を実装しているエンジンのバージョンを返します。
managerName() と managerVersion() の組み合わせは、プラグインの実装間で一意である必要があります。
QGeoCodeReply *QGeoCodingManager::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds = QGeoShape())
coordinate のリバースジオコーディングを開始します。リバースジオコーディングとは、指定された座標に対応する住所を特定する処理のことです。
QGeoCodeReply オブジェクトが返されます。このオブジェクトを使用して、リバースジオコーディング操作を管理したり、操作の結果を取得したりすることができます。
このマネージャーと返されるQGeoCodeReply オブジェクトは、操作が完了したか、エラーが発生したかを示すシグナルを発行します。
supportsReverseGeocoding() が false を返した場合、QGeoCodeReply::UnsupportedOptionError が発生します。
その時点で、QGeoCodeReply::locations() を使用して結果を取得できます。結果は、QGeoLocation オブジェクトのリストで構成されます。これらのオブジェクトは、座標データと住所データの組み合わせを表しています。
結果として返される座標データは、coordinate とは異なる場合があります。これは通常、リバースジオコーディング・サービスのバックエンドが、一致する住所により近くなるよう座標を調整した場合、またはバックエンドが複数の詳細レベルで結果を返す場合に発生します。
リバースジオコーディングサービスのバックエンドによって複数の結果が返される場合、それらは特定度の低い順に提供されます。これは通常、バックエンドが複数の詳細レベルにわたってリバースジオコーディングを行うように構成されている場合に発生します。例えば、一部のサービスでは、通り名、市、州、国ごとの住所と座標のペアを返します。
bounds がnullではなく、有効なQGeoRectangle である場合、bounds 内に含まれる結果に限定するために使用されます。
返された返信オブジェクトの削除はユーザーの責任ですが、QGeoCodingManager::finished()、QGeoCodingManager::errorOccurred()、QGeoCodeReply::finished() またはQGeoCodeReply::errorOccurred() に接続されたスロット内で、deleteLater() を使用して削除することも可能です。
void QGeoCodingManager::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.