PlaceSearchModel QML Type

プレイス検索結果へのアクセスを提供します。詳細...

Import Statement: import QtLocation 6.8
Since: QtLocation 5.5

プロパティ

メソッド

詳細説明

PlaceSearchModel は、searchArea 内の場所の検索結果のモデルを提供します。searchTermcategories プロパティを設定することで、検索結果をそれらの条件に一致する場所に制限することができます。

PlaceSearchModel はスポンサー検索結果とオーガニック検索結果の両方を返します。スポンサードサーチの結果は、sponsored ロールが true に設定されます。

このモデルは以下のロールのデータを返します:

役割タイプ説明
タイプ列挙検索結果のタイプ。
タイトル文字列検索結果を表す文字列。
アイコン場所のアイコン検索結果を表すアイコン。
距離リアルtype の役割がPlaceResult の場合のみ有効。searchArea の中心からその場所までの距離。searchArea が指定されていない場合、距離は NaN となる。
場所Placetype の役割が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 を使って、指定された位置の近くにあるピザレストランを検索する方法を示しています。searchTermsearchArea がモデルに提供され、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を返すでしょう。nextPagesAvailablepreviousPagesAvailable プロパティは、さらに他のページをチェックするために使用できます。現時点では、APIはバックから利用可能なアイテムの総数を取得する手段をサポートしていません。nextPage ()、previousPage ()、limit ()のサポートは、plugin

CategoryModel およびQPlaceManagerも参照のこと

プロパティのドキュメント

categories : list<Category> [read-only]

このプロパティは、検索時に使用されるカテゴリのリストを保持する。返される検索結果は、少なくとも1つのカテゴリーに一致する場所となります。


count : int [read-only]

このプロパティは、モデルが持つ検索結果の数を保持します。

バックエンドで利用可能な検索結果の総数を指すものではないことに注意してください。検索結果の総数は現在APIではサポートされていません。


favoritesMatchParameters : VariantMap

このプロパティは、検索結果の場所をfavoritesPlugin のお気に入りにマッチさせる方法を指定するために使用されるパラメータのセットを保持します。

デフォルトでは、パラメータマップは空であり、お気に入りプラグインが代替識別子でマッチングすることを意味する。通常、アプリケーション開発者はこのプロパティを設定する必要はありません。

お気に入りプラグインが代替識別子によるマッチングをサポートしていない場合、どのようなキー・バリュー・パラメータを設定すればよいかは、プラグインのドキュメントを参照する必要があります。


favoritesPlugin : Plugin

このプロパティは、お気に入りの検索に使用されるPlugin 。検索結果から、favoritesPluginで相互参照またはマッチングが可能な場所は、そのfavorite プロパティにfavoritesPluginの対応するPlace が設定されます。

favoritesPlugin が設定されていない場合、検索結果の場所のfavorite プロパティは常に null になります。

Favoritesも参照してください


incremental : bool [since QtLocation 5.12]

このプロパティは、ページングがPlaceSearchModel にどのように影響するかを制御します。trueの場合、previousPage またはnextPage を呼び出してもモデルはリセットされず、代わりに新しい結果がモデルに追加されます。デフォルトはfalseです。

このプロパティはQtLocation 5.12で導入されました。


limit : int

このプロパティは、返される項目の数の上限を保持します。


nextPagesAvailable : bool [read-only]

このプロパティは、検索結果の追加ページが 1 つ以上あるかどうかを保持します。

nextPage()も参照してください


plugin : Plugin

このプロパティは、検索に使用されるPlugin を保持します。


previousPagesAvailable : bool [read-only]

このプロパティは、利用可能な検索結果の前のページが 1 つ以上あるかどうかを保持します。

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


recommendationId : string

このプロパティは、類似の場所の推奨を検索するために使用される placeId を保持します。


relevanceHint : enumeration

このプロパティは、検索クエリで使用される関連性のヒントを保持します。このヒントは、結果のランキングを決定するのではなく、手助けするためにプロバイダに与えられます。例えば、距離のヒントはより近い場所に高いランキングを与えるかもしれないが、必ずしも結果が距離に従って厳密に並べられることを意味しない。プロバイダはヒントを完全に無視することもできます。

SearchResultModel.UnspecifiedHintプロバイダに関連性のヒントが与えられていない。
SearchResultModel.DistanceHintユーザーの現在地からの場所の距離は、ユーザーにとって重要です。このヒントは、円形の検索エリアが使用されている場合にのみ意味があります。
SearchResultModel.LexicalPlaceNameHint地名の辞書的順序 (アルファベットの昇順) はユーザーにとって重要です。このヒントはローカルデータストアに基づくプロバイダに役立ちます。

searchArea : variant

このプロパティは検索領域を保持します。モデルによって返される検索結果は、検索領域内になります。

このプロパティがgeocircle に設定されている場合、そのradius プロパティは未設定のままにしておくことができ、その場合、Plugin は検索のための適切な半径を選択します。

検索領域を指定するためのサポートは、plugin バックエンドの実装によって異なります。例えば、検索中心のみをサポートするものもあれば、ジオ・レクタングルのみをサポートするものもあります。


searchTerm : string

このプロパティは、クエリで使用される検索用語を保持する。検索語は自由形式のテキスト文字列です。


status : enum [read-only]

このプロパティはモデルの状態を保持する。以下のいずれかになります:

PlaceSearchModel.Null検索クエリは実行されていません。モデルは空です。
PlaceSearchModel.Ready検索クエリが完了し、結果が利用可能です。
PlaceSearchModel.Loading検索クエリが実行中です。
PlaceSearchModelエラー直前の検索クエリ実行時にエラーが発生しました。

visibilityScope : enum

このプロパティは、検索する場所の可視範囲を保持します。指定された可視性を持つ場所のみが検索結果に返されます。

可視性スコープには以下のいずれかを指定します:

Place.UnspecifiedVisibility明示的な可視範囲を指定せず、任意の可視範囲を持つ場所が検索結果の一部となる可能性があります。
場所.デバイス可視性ローカルデバイスに保存されている場所のみが検索結果の一部となります。
場所.プライベート可視性現在のユーザーに非公開の場所のみが検索結果の一部となります。
場所.PublicVisibility公開されている場所のみが検索結果の一部となります。

メソッドのドキュメント

void cancel()

進行中の検索操作を直ちにキャンセルし、モデルのステータスをPlaceSearchModel.Readyに設定します。モデルは、操作が開始される前に持っていた検索結果を保持します。

操作が進行中でない場合、cancel() を呼び出しても何の効果もありません。

update() およびstatusも参照してください


Variant data(int index, string role)

指定されたrole のデータを、指定された行index で返します。


string errorString()

この読み取り専用プロパティは、最新の場所検索モデル・エラーのテキスト表示を保持します。エラーが発生していない場合、またはモデルがクリアされた場合は、空の文字列が返されます。

関連するテキスト表現がないエラーが発生した場合は、空文字列が返されることもある。


void nextPage()

検索結果の次のページを表示するようにモデルを更新します。次のページがない場合、このメソッドは何もしません。


void previousPage()

検索結果の前のページを表示するようにモデルを更新します。前のページがない場合、このメソッドは何もしません。


void reset()

モデルをリセットします。すべての検索結果はクリアされ、未処理のリクエストはすべて中止され、考えられるエラーはクリアされます。モデルのステータスはPlaceSearchModel.Null に設定されます。


void update()

提供されたクエリパラメータに基づいてモデルを更新します。モデルには、型のプロパティによって指定された検索パラメータに一致する場所のリストが入力されます。検索基準は、searchTermcategoriessearchArealimit などのプロパティを設定することによって指定されます。これらのプロパティのサポートは、plugin によって異なる可能性があります。update() は、処理するために、plugin に基準のセットを提出します。

モデルが更新されている間、モデルのstatusPlaceSearchModel.Loading にセットされる。モデルが正常に更新された場合、statusPlaceSearchModel.Ready にセットされ、更新が完了しなかった場合、statusPlaceSearchModel.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();
    }
}

cancel() およびstatusも参照のこと


void updateWith(int proposedSearchIndex)

インデックスproposedSearchIndex の ProposedSearchResult に基づいてモデルを更新します。モデルには、提案された検索にマッチする場所のリストが入力されます。モデルのステータスはPlaceSearchModel.Loading に設定されます。モデルが正常に更新された場合、ステータスはPlaceSearchModel.Ready に設定されます。エラーが発生した場合、ステータスはPlaceSearchModel.Error に設定され、モデルはクリアされます。

proposedSearchIndex が ProposedSearchResult を参照していない場合、このメソッドは何もしません。


本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。