PlaceSearchModel QML Type

장소 검색 결과에 대한 액세스를 제공합니다. 더 보기...

Import Statement: import QtLocation 6.8
Since: QtLocation 5.5

속성

방법

자세한 설명

장소검색모델은 searchArea 에서 장소 검색 결과의 모델을 제공합니다. searchTermcategories 속성을 설정하여 검색 결과를 해당 기준과 일치하는 장소로 제한할 수 있습니다.

장소검색모델은 스폰서 검색 결과와 자연 검색 결과를 모두 반환합니다. 스폰서 검색 결과에는 sponsored 역할이 true로 설정됩니다.

이 모델은 다음 역할에 대한 데이터를 반환합니다:

역할유형설명
유형열거형검색 결과의 유형입니다.
title문자열검색 결과를 설명하는 문자열입니다.
아이콘장소 아이콘검색 결과를 나타내는 아이콘입니다.
거리실제type 역할이 PlaceResult 인 경우에만 유효하며, searchArea 의 중심에서 장소까지의 거리입니다. searchArea 이 지정되지 않은 경우, 거리는 NaN입니다.
장소Placetype 역할이 PlaceResult, 장소를 나타내는 객체일 때만 유효합니다.
sponsoredbooltype 역할이 PlaceResult 인 경우에만 유효하며 검색 결과가 스폰서된 결과인 경우 참입니다.

검색 결과 유형

type 역할은 다음 값을 사용할 수 있습니다:

장소검색모델.알 수 없는 검색 결과검색 결과의 내용을 알 수 없습니다.
장소 검색 모델.장소 결과검색 결과에 장소가 포함되어 있습니다.
장소검색모델.제안된검색결과검색 결과에 관련성이 있을 수 있는 제안된 검색이 포함되어 있습니다.

검색 결과 유형에 따라 다른 Component을 선택하는 델리게이트를 만들려면 Loader 을 사용하는 것이 도움이 될 수 있습니다.

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
    }
}

업데이트 및 삭제된 장소 감지

장소검색모델은 플러그인 백엔드에서 업데이트되거나 제거된 장소를 수신 대기합니다. 장소가 업데이트되었고 해당 장소가 현재 모델에 있는 것을 감지하면 Place::getDetails 을 호출하여 세부 정보를 새로 고칩니다. 장소가 제거된 것을 감지하면 해당 장소가 현재 모델에 있는 경우 해당 장소가 모델에서 제거됩니다.

예시

다음 예는 특정 위치에서 가까운 곳에 있는 피자 레스토랑을 검색하기 위해 PlaceSearchModel을 사용하는 방법을 보여줍니다. searchTermsearchArea 이 모델에 제공되고 update()이 조회 쿼리를 수행하는 데 사용됩니다. 이 모델은 검색 결과를 점진적으로 가져오는 것이 아니라 update()가 실행될 때 한 번만 가져온다는 점에 유의하세요. 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()

}

페이징

장소검색모델 API는 페이징을 일부 제한적으로 지원합니다. nextPage () 및 previousPage() 함수와 limit 속성을 사용하여 페이징된 검색 결과에 액세스할 수 있습니다. limit 속성이 설정되면 검색 결과 페이지에는 최대 limit 항목(장소 결과 유형)이 포함됩니다. 예를 들어 백엔드에 총 5개의 검색 결과[a,b,c,d,e]가 있고 첫 번째 페이지가 표시되고 3개 제한이 설정되어 있다고 가정하면 a,b,c가 반환됩니다. nextPage ()는 d,e를 반환합니다. nextPagesAvailablepreviousPagesAvailable 속성을 사용하여 추가 페이지를 확인할 수 있습니다. 현재 API는 백업된 항목의 총 개수를 검색하는 수단을 지원하지 않습니다. nextPage (), previousPage() 및 limit 에 대한 지원은 plugin 에 따라 달라질 수 있습니다.

CategoryModelQPlaceManager참조하세요 .

속성 문서

categories : list<Category> [read-only]

이 속성에는 검색할 때 사용할 카테고리 목록이 저장됩니다. 반환되는 검색 결과는 카테고리 중 하나 이상과 일치하는 장소에 대한 것입니다.


count : int [read-only]

이 속성은 모델에 포함된 결과의 수를 보유합니다.

백엔드에서 사용할 수 있는 총 검색 결과 수는 참조하지 않습니다. 총 검색 결과 수는 현재 API에서 지원되지 않습니다.


favoritesMatchParameters : VariantMap

이 속성에는 검색 결과 장소가 favoritesPlugin 에서 즐겨찾기와 일치하는 방법을 지정하는 데 사용되는 매개변수 세트가 있습니다.

기본적으로 매개변수 맵은 비어 있으며 즐겨찾기 플러그인이 대체 식별자를 통해 일치한다는 것을 의미합니다. 일반적으로 애플리케이션 개발자는 이 속성을 설정할 필요가 없습니다.

즐겨찾기 플러그인이 대체 식별자를 통한 매칭을 지원하지 않는 경우에는 플러그인 설명서를 참조하여 설정할 키-값 매개변수를 정확히 확인해야 합니다.


favoritesPlugin : Plugin

이 속성은 즐겨찾기를 검색하는 데 사용되는 Plugin 을 보유합니다. 검색에서 즐겨찾기를 상호 참조하거나 즐겨찾기 플러그인에서 일치시킬 수 있는 모든 장소는 즐겨찾기 플러그인에서 favorite 속성이 해당 Place 으로 설정됩니다.

즐겨찾기가 설정되지 않은 경우 결과에서 장소의 favorite 속성은 항상 null이 됩니다.

Favorites도 참조하세요 .


incremental : bool [since QtLocation 5.12]

이 속성은 페이징이 PlaceSearchModel 에 영향을 미치는 방식을 제어합니다. 참이면 previousPage 또는 nextPage 을 호출해도 모델이 재설정되지 않고 대신 새 결과가 모델에 추가됩니다. 기본값은 false입니다.

이 속성은 QtLocation 5.12에 도입되었습니다.


limit : int

이 속성은 반환될 항목 수의 제한을 보유합니다.


nextPagesAvailable : bool [read-only]

이 속성은 사용 가능한 검색 결과의 추가 페이지가 하나 이상 있는지 여부를 보유합니다.

nextPage()도 참조하세요 .


plugin : Plugin

이 속성은 검색을 수행하는 데 사용되는 Plugin 을 보유합니다.


previousPagesAvailable : bool [read-only]

이 속성은 사용 가능한 검색 결과의 이전 페이지가 하나 이상 있는지 여부를 보유합니다.

previousPage()도 참조하세요 .


recommendationId : string

이 속성은 유사한 장소에 대한 추천을 찾는 데 사용할 placeId를 보유합니다.


relevanceHint : enumeration

이 속성은 검색 쿼리에 사용된 관련성 힌트를 보유합니다. 힌트는 제공자에게 제공되지만 결과 순위를 결정하지는 않습니다. 예를 들어 거리 힌트는 가까운 곳에 더 높은 순위를 부여할 수 있지만 반드시 거리에 따라 결과가 엄격하게 정렬되는 것을 의미하지는 않습니다. 공급자는 힌트를 완전히 무시할 수도 있습니다.

검색 결과 모델.지정되지 않은 힌트제공업체에 관련성 힌트가 제공되지 않습니다.
검색결과모델.거리 힌트사용자의 현재 위치에서 장소의 거리는 사용자에게 중요합니다. 이 힌트는 원형 검색 영역을 사용할 때만 의미가 있습니다.
검색 결과 모델.어휘 장소 이름 힌트장소 이름의 어휘 순서(알파벳 오름차순)는 사용자와 관련이 있습니다. 이 힌트는 로컬 데이터 저장소를 기반으로 하는 공급업체에 유용합니다.

searchArea : variant

이 속성은 검색 영역을 보유합니다. 모델에서 반환되는 검색 결과는 검색 영역 내에 있습니다.

이 속성이 geocircle 로 설정된 경우 radius 속성을 설정하지 않을 수 있으며, 이 경우 Plugin 에서 검색에 적합한 반경을 선택합니다.

검색 영역 지정에 대한 지원은 plugin 백엔드 구현에 따라 다를 수 있습니다. 예를 들어 일부는 검색 센터만 지원하는 반면 다른 일부는 지리적 사각형만 지원할 수 있습니다.


searchTerm : string

이 속성은 쿼리에 사용되는 검색어를 보유합니다. 검색어는 자유 형식의 텍스트 문자열입니다.


status : enum [read-only]

이 속성은 모델의 상태를 보유합니다. 다음 중 하나 일 수 있습니다:

PlaceSearchModel.Null검색 쿼리가 실행되지 않았습니다. 모델이 비어 있습니다.
PlaceSearchModel.Ready검색 쿼리가 완료되었으며 결과를 사용할 수 있습니다.
PlaceSearchModel.Loading검색 쿼리가 현재 실행 중입니다.
PlaceSearchModel.Error이전 검색 쿼리를 실행하는 동안 오류가 발생했습니다.

visibilityScope : enum

이 속성은 검색할 장소의 공개 범위를 보유합니다. 지정된 공개 범위를 가진 장소만 검색 결과에 반환됩니다.

공개 범위는 다음 중 하나일 수 있습니다:

Place.UnspecifiedVisibility명시적인 공개 범위가 지정되지 않은 경우, 모든 공개 범위의 장소가 검색 결과에 포함될 수 있습니다.
장소.디바이스 가시성로컬 디바이스에 저장된 장소만 검색 결과에 포함됩니다.
장소.비공개 가시성현재 사용자에게 비공개인 장소만 검색 결과에 포함됩니다.
장소.공개 가시성공개 상태인 장소만 검색 결과에 포함됩니다.

메서드 문서

void cancel()

진행 중인 검색 작업을 즉시 취소하고 모델 상태를 PlaceSearchModel.Ready로 설정합니다. 모델은 작업을 시작하기 전의 모든 검색 결과를 유지합니다.

작업이 진행 중이 아닌 경우 취소()를 호출해도 아무런 효과가 없습니다.

update() 및 status참조하세요 .


Variant data(int index, string role)

지정된 행 index 에서 주어진 role 에 대한 데이터를 반환합니다.


string errorString()

이 읽기 전용 속성은 최신 장소 검색 모델 오류의 텍스트 표시를 보유합니다. 오류가 발생하지 않았거나 모델이 지워진 경우 빈 문자열이 반환됩니다.

연관된 텍스트 표현이 없는 오류가 발생한 경우에도 빈 문자열이 반환될 수 있습니다.


void nextPage()

검색 결과의 다음 페이지를 표시하도록 모델을 업데이트합니다. 다음 페이지가 없는 경우 이 메서드는 아무 작업도 수행하지 않습니다.


void previousPage()

검색 결과의 이전 페이지를 표시하도록 모델을 업데이트합니다. 이전 페이지가 없는 경우 이 메서드는 아무 작업도 수행하지 않습니다.


void reset()

모델을 초기화합니다. 모든 검색 결과가 지워지고 미결 요청이 중단되며 가능한 오류가 지워집니다. 모델 상태는 PlaceSearchModel.Null로 설정됩니다.


void update()

제공된 쿼리 매개변수를 기반으로 모델을 업데이트합니다. 유형 속성에 지정된 검색 매개변수와 일치하는 장소 목록으로 모델이 채워집니다. 검색 기준은 searchTerm, categories, searchArea, limit 과 같은 속성을 설정하여 지정합니다. 이러한 속성에 대한 지원은 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.로드 중으로 설정됩니다. 모델이 성공적으로 업데이트되면 상태는 PlaceSearchModel.준비됨으로 설정됩니다. 오류가 발생하면 상태는 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.