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)
자세한 설명
장소검색모델은 searchArea 에서 장소 검색 결과의 모델을 제공합니다. searchTerm 및 categories 속성을 설정하여 검색 결과를 해당 기준과 일치하는 장소로 제한할 수 있습니다.
장소검색모델은 스폰서 검색 결과와 자연 검색 결과를 모두 반환합니다. 스폰서 검색 결과에는 sponsored
역할이 true로 설정됩니다.
이 모델은 다음 역할에 대한 데이터를 반환합니다:
역할 | 유형 | 설명 |
---|---|---|
유형 | 열거형 | 검색 결과의 유형입니다. |
title | 문자열 | 검색 결과를 설명하는 문자열입니다. |
아이콘 | 장소 아이콘 | 검색 결과를 나타내는 아이콘입니다. |
거리 | 실제 | type 역할이 PlaceResult 인 경우에만 유효하며, searchArea 의 중심에서 장소까지의 거리입니다. searchArea 이 지정되지 않은 경우, 거리는 NaN입니다. |
장소 | Place | type 역할이 PlaceResult , 장소를 나타내는 객체일 때만 유효합니다. |
sponsored | bool | type 역할이 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을 사용하는 방법을 보여줍니다. searchTerm 및 searchArea 이 모델에 제공되고 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를 반환합니다. nextPagesAvailable 및 previousPagesAvailable 속성을 사용하여 추가 페이지를 확인할 수 있습니다. 현재 API는 백업된 항목의 총 개수를 검색하는 수단을 지원하지 않습니다. nextPage (), previousPage() 및 limit 에 대한 지원은 plugin 에 따라 달라질 수 있습니다.
CategoryModel 및 QPlaceManager 을참조하세요 .
속성 문서
이 속성에는 검색할 때 사용할 카테고리 목록이 저장됩니다. 반환되는 검색 결과는 카테고리 중 하나 이상과 일치하는 장소에 대한 것입니다.
count : int |
이 속성은 모델에 포함된 결과의 수를 보유합니다.
백엔드에서 사용할 수 있는 총 검색 결과 수는 참조하지 않습니다. 총 검색 결과 수는 현재 API에서 지원되지 않습니다.
favoritesMatchParameters : VariantMap |
이 속성에는 검색 결과 장소가 favoritesPlugin 에서 즐겨찾기와 일치하는 방법을 지정하는 데 사용되는 매개변수 세트가 있습니다.
기본적으로 매개변수 맵은 비어 있으며 즐겨찾기 플러그인이 대체 식별자를 통해 일치한다는 것을 의미합니다. 일반적으로 애플리케이션 개발자는 이 속성을 설정할 필요가 없습니다.
즐겨찾기 플러그인이 대체 식별자를 통한 매칭을 지원하지 않는 경우에는 플러그인 설명서를 참조하여 설정할 키-값 매개변수를 정확히 확인해야 합니다.
favoritesPlugin : Plugin |
incremental : bool |
이 속성은 페이징이 PlaceSearchModel 에 영향을 미치는 방식을 제어합니다. 참이면 previousPage 또는 nextPage 을 호출해도 모델이 재설정되지 않고 대신 새 결과가 모델에 추가됩니다. 기본값은 false입니다.
이 속성은 QtLocation 5.12에 도입되었습니다.
limit : int |
이 속성은 반환될 항목 수의 제한을 보유합니다.
nextPagesAvailable : bool |
이 속성은 사용 가능한 검색 결과의 추가 페이지가 하나 이상 있는지 여부를 보유합니다.
nextPage()도 참조하세요 .
previousPagesAvailable : bool |
이 속성은 사용 가능한 검색 결과의 이전 페이지가 하나 이상 있는지 여부를 보유합니다.
previousPage()도 참조하세요 .
recommendationId : string |
이 속성은 유사한 장소에 대한 추천을 찾는 데 사용할 placeId를 보유합니다.
relevanceHint : enumeration |
이 속성은 검색 쿼리에 사용된 관련성 힌트를 보유합니다. 힌트는 제공자에게 제공되지만 결과 순위를 결정하지는 않습니다. 예를 들어 거리 힌트는 가까운 곳에 더 높은 순위를 부여할 수 있지만 반드시 거리에 따라 결과가 엄격하게 정렬되는 것을 의미하지는 않습니다. 공급자는 힌트를 완전히 무시할 수도 있습니다.
검색 결과 모델.지정되지 않은 힌트 | 제공업체에 관련성 힌트가 제공되지 않습니다. |
검색결과모델.거리 힌트 | 사용자의 현재 위치에서 장소의 거리는 사용자에게 중요합니다. 이 힌트는 원형 검색 영역을 사용할 때만 의미가 있습니다. |
검색 결과 모델.어휘 장소 이름 힌트 | 장소 이름의 어휘 순서(알파벳 오름차순)는 사용자와 관련이 있습니다. 이 힌트는 로컬 데이터 저장소를 기반으로 하는 공급업체에 유용합니다. |
searchArea : variant |
searchTerm : string |
이 속성은 쿼리에 사용되는 검색어를 보유합니다. 검색어는 자유 형식의 텍스트 문자열입니다.
status : enum |
이 속성은 모델의 상태를 보유합니다. 다음 중 하나 일 수 있습니다:
PlaceSearchModel.Null | 검색 쿼리가 실행되지 않았습니다. 모델이 비어 있습니다. |
PlaceSearchModel.Ready | 검색 쿼리가 완료되었으며 결과를 사용할 수 있습니다. |
PlaceSearchModel.Loading | 검색 쿼리가 현재 실행 중입니다. |
PlaceSearchModel.Error | 이전 검색 쿼리를 실행하는 동안 오류가 발생했습니다. |
visibilityScope : enum |
이 속성은 검색할 장소의 공개 범위를 보유합니다. 지정된 공개 범위를 가진 장소만 검색 결과에 반환됩니다.
공개 범위는 다음 중 하나일 수 있습니다:
Place.UnspecifiedVisibility | 명시적인 공개 범위가 지정되지 않은 경우, 모든 공개 범위의 장소가 검색 결과에 포함될 수 있습니다. |
장소.디바이스 가시성 | 로컬 디바이스에 저장된 장소만 검색 결과에 포함됩니다. |
장소.비공개 가시성 | 현재 사용자에게 비공개인 장소만 검색 결과에 포함됩니다. |
장소.공개 가시성 | 공개 상태인 장소만 검색 결과에 포함됩니다. |
메서드 문서
void cancel() |
진행 중인 검색 작업을 즉시 취소하고 모델 상태를 PlaceSearchModel.Ready로 설정합니다. 모델은 작업을 시작하기 전의 모든 검색 결과를 유지합니다.
작업이 진행 중이 아닌 경우 취소()를 호출해도 아무런 효과가 없습니다.
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.로드 중으로 설정됩니다. 모델이 성공적으로 업데이트되면 상태는 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.