PlaceSearchModel QML Type
プレイス検索結果へのアクセスを提供します。詳細...
Import Statement: | import QtLocation 6.8 |
Since: | QtLocation 5.5 |
プロパティ
- categories : list<Category>
- count : int
- favoritesMatchParameters : VariantMap
- favoritesPlugin : Plugin
- incremental : bool
(since QtLocation 5.12)
- limit : int
- nextPagesAvailable : bool
- plugin : Plugin
- previousPagesAvailable : bool
- recommendationId : string
- relevanceHint : enumeration
- searchArea : variant
- searchTerm : string
- status : enum
- visibilityScope : enum
方法
- void cancel()
- Variant data(int index, string role)
- string errorString()
- void nextPage()
- void previousPage()
- void reset()
- void update()
- void updateWith(int proposedSearchIndex)
詳細
PlaceSearchModel は、searchArea 内の場所の検索結果のモデルを提供します。searchTerm とcategories プロパティを設定することで、検索結果をそれらの条件に一致する場所に制限することができます。
PlaceSearchModel は、スポンサー検索結果とオーガニック検索結果の両方を返します。スポンサードサーチの結果は、sponsored
ロールが true に設定されます。
このモデルは以下のロールのデータを返します:
役割 | タイプ | 説明 |
---|---|---|
タイプ | 列挙 | 検索結果のタイプ。 |
タイトル | 文字列 | 検索結果を表す文字列。 |
アイコン | 場所のアイコン | 検索結果を表すアイコン。 |
距離 | リアル | type の役割がPlaceResult の場合のみ有効。searchArea の中心からその場所までの距離。searchArea が指定されていない場合、距離は NaN となる。 |
場所 | Place | type の役割がPlaceResult の場合のみ有効で、場所を表すオブジェクト。 |
スポンサー | ブール | type の役割がPlaceResult の場合のみ有効で、検索結果がスポンサー付き結果であれば真。 |
検索結果の種類
type
役割は以下の値を取ることができます:
PlaceSearchModel.UnknownSearchResult | 検索結果の内容は不明です。 |
PlaceSearchModel.PlaceResult | 検索結果に場所が含まれている。 |
PlaceSearchModel.ProposedSearchResult | 検索結果に関連する可能性のある検索候補が含まれています。 |
Loader を使用して、検索結果の種類に応じて異なるComponentを選択するデリゲートを作成すると便利です。
Component { id: resultDelegate Loader { Component { id: placeResult Column { Text { text: title } Text { text: place.location.address.text } } } Component { id: otherResult Text { text: title } } sourceComponent: type == PlaceSearchModel.PlaceResult ? placeResult : otherResult } }
更新された場所と削除された場所の検出
PlaceSearchModel はプラグインのバックエンドから更新または削除された場所を探します。場所が更新され、その場所がモデル内に存在することを検知した場合、Place::getDetails を呼び出し、詳細を更新します。もしプレイスが削除されたことを検知した場合、そのプレイスがモデル内に存在するのであれば、そのプレイスはモデルから削除されます。
例
次の例は、PlaceSearchModel を使って、指定された位置の近くにあるピザレストランを検索する方法を示しています。searchTerm とsearchArea がモデルに提供され、update() が検索クエリを実行するために使用されます。このモデルは、検索結果をインクリメンタルにフェッチするのではなく、update ()が実行されたときに1回のフェッチを実行することに注意してください。count には、フェッチ中に返された検索結果の数が設定されます。
import QtQuick import QtPositioning import QtLocation PlaceSearchModel { id: searchModel plugin: myPlugin searchTerm: "food" searchArea: QtPositioning.circle(startCoordinate, 5000 /* 5 km radius */); Component.onCompleted: update() }
ページング
PlaceSearchModel API はページングを制限付きでサポートしています。nextPage() とpreviousPage() 関数、そしてlimit プロパティを使用することで、ページングされた検索結果にアクセスすることができます。limit プロパティが設定されている場合、検索結果ページには最大でlimit の項目(place result 型)が含まれます。例えば、バックエンドに合計5つの検索結果[a,b,c,d,e]があり、最初のページが表示され、リミット3が設定されているとすると、a,b,cが返されます。nextPage()はd,eを返すでしょう。nextPagesAvailable とpreviousPagesAvailable プロパティは、さらに他のページをチェックするために使用できます。現時点では、APIはバックから利用可能なアイテムの総数を取得する手段をサポートしていません。nextPage ()、previousPage ()、limit ()のサポートは、plugin 。
CategoryModel およびQPlaceManagerも参照のこと 。
プロパティのドキュメント
このプロパティは、検索時に使用されるカテゴリのリストを保持する。返される検索結果は、少なくとも1つのカテゴリーに一致する場所となります。
count : int |
このプロパティは、モデルが持つ検索結果の数を保持します。
バックエンドで利用可能な検索結果の総数を指すものではないことに注意してください。検索結果の総数は現在APIではサポートされていません。
favoritesMatchParameters : VariantMap |
このプロパティは、検索結果の場所をfavoritesPlugin のお気に入りにマッチさせる方法を指定するために使用されるパラメータのセットを保持します。
デフォルトでは、パラメータマップは空であり、お気に入りプラグインが代替識別子でマッチングすることを意味する。通常、アプリケーション開発者はこのプロパティを設定する必要はありません。
お気に入りプラグインが代替識別子によるマッチングをサポートしていない場合、どのようなキー・バリュー・パラメータを設定すればよいかは、プラグインのドキュメントを参照する必要があります。
favoritesPlugin : Plugin |
incremental : bool |
このプロパティは、ページングがPlaceSearchModel にどのような影響を与えるかを制御します。trueの場合、previousPage またはnextPage を呼び出してもモデルはリセットされず、代わりに新しい結果がモデルに追加されます。デフォルトはfalseです。
このプロパティはQtLocation 5.12で導入されました。
limit : int |
このプロパティは、返される項目の数の上限を保持します。
previousPagesAvailable : bool |
このプロパティは、利用可能な検索結果の前のページが 1 つ以上あるかどうかを保持します。
previousPage() も参照して ください。
recommendationId : string |
このプロパティは、類似の場所の推奨を検索するために使用される placeId を保持します。
relevanceHint : enumeration |
このプロパティは、検索クエリで使用される関連性のヒントを保持します。このヒントは、結果のランキングを決定するのではなく、手助けするためにプロバイダに与えられます。例えば、距離のヒントはより近い場所に高いランキングを与えるかもしれないが、必ずしも結果が距離に従って厳密に並べられることを意味しない。プロバイダはヒントを完全に無視することもできます。
SearchResultModel.UnspecifiedHint | プロバイダに関連性のヒントが与えられていない。 |
SearchResultModel.DistanceHint | ユーザーの現在地からの場所の距離は、ユーザーにとって重要です。このヒントは、円形の検索エリアが使用されている場合にのみ意味を持ちます。 |
SearchResultModel.LexicalPlaceNameHint | 地名の辞書的順序 (アルファベットの昇順) はユーザーにとって重要です。このヒントはローカルデータストアに基づくプロバイダに役立ちます。 |
searchArea : variant |
searchTerm : string |
このプロパティは、クエリで使用される検索用語を保持する。検索語は自由形式のテキスト文字列です。
status : enum |
このプロパティはモデルの状態を保持する。以下のいずれかになります:
PlaceSearchModel.Null | 検索クエリは実行されていません。モデルは空です。 |
PlaceSearchModel.Ready | 検索クエリが完了し、結果が利用可能です。 |
PlaceSearchModel.Loading | 検索クエリが実行中です。 |
PlaceSearchModelエラー | 直前の検索クエリ実行時にエラーが発生しました。 |
visibilityScope : enum |
このプロパティは、検索する場所の可視範囲を保持します。指定された可視性を持つ場所のみが検索結果に返されます。
可視性スコープには以下のいずれかを指定します:
Place.UnspecifiedVisibility | 明示的な可視範囲を指定せず、任意の可視範囲を持つ場所が検索結果の一部となる可能性があります。 |
場所.デバイス可視性 | ローカルデバイスに保存されている場所のみが検索結果の一部となります。 |
場所.プライベート可視性 | 現在のユーザーに非公開の場所のみが検索結果の一部となります。 |
場所.PublicVisibility | 公開されている場所のみが検索結果の一部となります。 |
メソッドのドキュメント
void cancel() |
進行中の検索操作を直ちにキャンセルし、モデルのステータスをPlaceSearchModel.Readyに設定します。モデルは、操作が開始される前に持っていた検索結果を保持します。
操作が進行中でない場合、cancel() を呼び出しても何の効果もありません。
string errorString() |
この読み取り専用プロパティは、最新の場所検索モデル・エラーのテキスト表示を保持します。エラーが発生していない場合、またはモデルがクリアされた場合は、空の文字列が返されます。
関連するテキスト表現がないエラーが発生した場合は、空文字列が返されることもある。
void nextPage() |
検索結果の次のページを表示するようにモデルを更新します。次のページがない場合、このメソッドは何もしません。
void previousPage() |
検索結果の前のページを表示するようにモデルを更新します。前のページがない場合、このメソッドは何もしません。
void reset() |
モデルをリセットします。すべての検索結果はクリアされ、未処理のリクエストはすべて中止され、考えられるエラーはクリアされます。モデルのステータスはPlaceSearchModel.Null に設定されます。
void update() |
提供されたクエリパラメータに基づいてモデルを更新します。モデルには、型のプロパティによって指定された検索パラメータに一致する場所のリストが入力されます。検索条件は、searchTerm 、categories 、searchArea 、limit などのプロパティを設定することによって指定されます。これらのプロパティのサポートは、plugin によって異なるかもしれない。update()
は次に、処理するために、plugin に基準のセットを提出する。
モデルが更新されている間、モデルのstatus はPlaceSearchModel.Loading
にセットされる。モデルが正常に更新された場合、status はPlaceSearchModel.Ready
にセットされ、更新が完了しなかった場合、status はPlaceSearchModel.Error
にセットされ、モデルはクリアされる。
PlaceSearchModel { id: model plugin: backendPlugin searchArea: QtPositioning.circle(QtPositioning.coordinate(10, 10)) ... } MouseArea { ... onClicked: { model.searchTerm = "pizza"; model.categories = null; //not searching by any category model.searchArea.center.latitude = -27.5; model.searchArea.center.longitude = 153; model.update(); } }
void updateWith(int proposedSearchIndex) |
インデックスproposedSearchIndex の ProposedSearchResult に基づいてモデルを更新します。モデルには、提案された検索にマッチする場所のリストが入力されます。モデルのステータスはPlaceSearchModel.Loading に設定されます。モデルが正常に更新された場合、ステータスはPlaceSearchModel.Ready に設定されます。エラーが発生した場合、ステータスはPlaceSearchModel.Error に設定され、モデルはクリアされます。
proposedSearchIndex が ProposedSearchResult を参照していない場合、このメソッドは何もしません。
© 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.