Place QML Type

장소 유형은 관심 위치인 위치를 나타냅니다. 더 보기...

Import Statement: import QtLocation 6.8
Since: QtLocation 5.5

속성

방법

상세 설명

장소 유형은 해당 위치를 설명하는 추가 메타데이터와 함께 실제 위치를 나타냅니다. 위치의 위치를 설명하는 데 사용되는 Location, Address, coordinate 유형과 대조됩니다. 장소의 기본 속성은 namelocation 입니다.

장소 개체는 일반적으로 검색 모델에서 가져오며 일반적으로 기본 속성만 설정됩니다. detailsFetched 속성은 Plugin 에서 추가 속성 값을 가져와야 하는지 테스트하는 데 사용할 수 있습니다. getDetails() 메서드를 호출하여 이 작업을 수행할 수 있습니다. 가져오기 작업의 진행 상황은 status 속성을 사용하여 모니터링할 수 있으며, 이 속성은 세부 정보를 가져오면 Place.Fetching으로 설정됩니다.

장소 유형에는 위치에 대한 정보를 담고 있는 많은 속성이 있습니다. 장소에 연락하는 방법에 대한 자세한 내용은 contactDetails 속성에서 확인할 수 있습니다. 기본 phone, fax, emailwebsite 을 얻기 위한 편의 속성도 사용할 수 있습니다.

각 장소에는 0개 이상의 categories 이 할당됩니다. 카테고리는 일반적으로 레스토랑이나 호텔 등 특정 종류의 장소를 검색할 때 사용됩니다. 일부 장소에는 장소의 품질을 나타내는 ratings 개체가 있습니다.

장소 메타데이터는 장소 세부정보를 볼 때 사용자에게 attribution 메시지를 표시하도록 요구할 수 있는 supplier 에 의해 제공됩니다.

장소에는 맵에서 장소를 나타내거나 뷰에서 델리게이트를 장식하는 데 사용할 수 있는 관련 icon 이 있습니다.

장소에는 추가적인 리치 콘텐츠가 연결될 수 있습니다. 현재 지원되는 리치 콘텐츠에는 편집 설명, 리뷰 및 이미지가 포함됩니다. 이러한 콘텐츠는 콘텐츠 검색을 위한 모델 집합으로 노출됩니다. 장소에 대한 에디토리얼 설명은 editorialModel 속성에서 확인할 수 있습니다. 장소의 리뷰는 reviewModel 속성에서 확인할 수 있습니다. 장소 사진 갤러리는 imageModel 속성을 사용하여 액세스할 수 있습니다.

장소에는 공식 API에서 다루지 않는 추가 속성이 있을 수 있습니다. extendedAttributes 속성을 통해 이러한 속성에 액세스할 수 있습니다. 사용 가능한 확장 속성의 유형은 각 Plugin 에 따라 다릅니다.

장소는 거의 항상 plugin 에 연결됩니다. plugin 속성을 설정해야 save(), remove() 또는 getDetails()를 호출할 수 있습니다. reviewModel , imageModeleditorialModelplugin 속성이 설정된 경우에만 유효합니다.

장소 저장하기

Plugin 에서 지원하는 경우 장소 유형을 사용하여 장소를 저장할 수 있습니다. 먼저 새 장소를 만들고 해당 속성을 설정합니다:

Place {
    id: myPlace
    plugin: myPlugin

    name: "Brisbane Technology Park"
    location: Location {
        address: Address {
            street: "53 Brandl Street"
            city: "Eight Mile Plains"
            postalCode: "4113"
            country: "Australia"
        }
        coordinate {
            latitude: -27.579646
            longitude: 153.100308
        }
    }

    visibility: Place.PrivateVisibility
}

그런 다음 save() 메서드를 호출합니다:

    myPlace.save();

status 속성은 저장에 성공하면 Place.Saving으로, 저장에 실패하면 Place.Ready로, 오류가 발생하면 Place.Error로 변경됩니다.

placeId 속성이 설정되어 있으면 백엔드에서 기존 장소를 업데이트하고 그렇지 않으면 새 장소를 만듭니다. 성공하면 placeId 속성이 새로 저장된 장소의 식별자로 업데이트됩니다.

주의

장소 API는 현재 core 세부 정보만 저장하도록 설계되었습니다. 이미지 및 리뷰와 같은 리치 콘텐츠나 공급업체 및 평점과 같은 세부 정보를 저장하는 것은 지원되지 않는 사용 사례입니다. 일반적으로 관리자는 저장 시 이러한 필드를 무시하고 해당 필드를 채우면 경고 메시지를 표시할 수 있습니다.

장소 API는 다음과 같은 핵심 세부 정보 저장만 지원합니다:

  • 이름
  • 장소 ID
  • 위치
  • 연락처 세부정보
  • 아이콘
  • 카테고리(장소를 설명하는 태그와 같은 이름)
  • 공개 범위

제공업체가 이 중 일부만 지원할 수도 있습니다. 자세한 내용은 플러그인 설명서를 참조하세요.

평점, 확장 속성, 이미지, 리뷰, 사설 및 공급업체와 같은 속성의 저장은 장소 API에서 명시적으로 지원되지 않습니다.

플러그인 간 저장

플러그인 간에 장소를 저장할 때 몇 가지 주의해야 할 사항이 있습니다. 아이디, 카테고리, 아이콘과 같은 장소의 일부 필드는 플러그인별 엔티티입니다. 예를 들어 한 관리자의 카테고리가 다른 관리자에서는 인식되지 않을 수 있습니다. 따라서 한 플러그인에서 다른 플러그인으로 장소를 직접 저장하는 것은 불가능합니다.

일반적으로 플러그인 간 저장은 즐겨찾기 섹션에 설명된 대로 favorites 에 저장하는 것으로 처리하는 것이 좋습니다. 그러나 새 장소를 만들고 (대상) 플러그인을 설정한 다음 copyFrom() 방법을 사용하여 원래 장소의 세부 정보를 복사하는 다른 방법도 있습니다. copyFrom ()를 사용하면 대상 플러그인에서 지원하는 데이터만 복사되며, 장소 식별자와 같은 플러그인별 데이터는 복사되지 않습니다. 복사가 완료되면 장소는 저장하기에 적합한 상태가 됩니다.

다음 스니펫은 copyFrom 메서드를 사용하여 다른 플러그인에 장소를 저장하는 예제입니다:

var place = Qt.createQmlObject('import QtLocation; Place { }', parent);
place.plugin = destinationPlugin;
place.copyFrom(originalPlace);
place.save();

장소 제거하기

장소를 제거하려면 유효한 placeId 속성을 가진 장소 개체가 있는지 확인하고 해당 개체의 remove() 메서드를 호출합니다. status 속성은 저장에 성공하면 Place.Removing으로 변경되고, 저장에 실패하면 Place.Ready로, 오류가 발생하면 Place.Error로 변경됩니다.

즐겨찾기

장소 API는 즐겨찾기의 개념을 지원합니다. 즐겨찾기는 일반적으로 두 개의 플러그인을 사용하여 구현되며, 첫 번째 플러그인은 일반적으로 장소의 읽기 전용 소스(출처 플러그인)이고 두 번째 읽기/쓰기 플러그인(목적지 플러그인)은 출처의 장소를 즐겨찾기로 저장하는 데 사용됩니다.

각 장소에는 대상 플러그인의 해당 장소를 포함하기 위한 즐겨찾기 속성이 있습니다(장소 자체는 출처 플러그인에서 소싱됨). 원래 장소와 즐겨찾기의 인스턴스를 모두 사용할 수 있으므로 개발자는 사용자에게 표시할 속성을 선택할 수 있습니다. 예를 들어 즐겨찾기에 원래 이름 대신 수정된 이름이 표시될 수 있습니다.

Text { text: place.favorite ? place.favorite.name : place.name }

다음은 새로운 즐겨찾기 인스턴스를 저장하는 방법을 보여줍니다. 즐겨찾기 인스턴스를 생성/초기화하기 위해 호출한 다음 인스턴스가 저장됩니다.

place.initializeFavorite(destinationPlugin);
//if necessary customizations to the favorite can be made here.
//...
place.favorite.save();

다음은 즐겨찾기를 삭제하는 방법을 보여줍니다:

place.favorite.remove();
    ...
//check successful removal of the favorite by monitoring its status.
//once that is done we can assign null to the favorite
place.favorite = null;

PlaceSearchModel 에는 즐겨찾는 플러그인 속성이 있습니다. 이 속성이 설정되어 있으면 검색 중에 발견되는 모든 장소가 즐겨찾기에 해당하는 장소가 있는지 확인하기 위해 즐겨찾기에 대해 favoritesPlugin을 확인합니다. 그렇다면 해당 장소의 즐겨찾기 속성이 설정되고, 그렇지 않으면 즐겨찾기 속성이 null로 유지됩니다.

PlaceSearchModel참조하세요 .

속성 문서

attribution : string

이 속성에는 장소의 서식 있는 텍스트 어트리뷰션 문자열이 저장됩니다. 일부 제공업체는 장소가 표시될 때마다 사용자에게 어트리뷰션을 표시하도록 요구할 수 있습니다. 이 속성이 비어 있지 않으면 사용자에게 이 속성의 콘텐츠가 표시되어야 합니다.


categories : list<Category> [read-only]

이 속성에는 이 장소가 속한 카테고리 목록이 포함됩니다. 장소에 할당할 수 있는 카테고리는 각 plugin 에 따라 다릅니다.


contactDetails : ContactDetails [read-only]

이 속성에는 이 장소의 연락처 정보(예: 전화 번호 또는 웹사이트 URL)가 들어 있습니다. 이 속성은 contactDetail 개체의 맵입니다.


detailsFetched : bool [read-only]

이 속성은 장소의 세부 정보를 가져왔는지 여부를 나타냅니다. 이 속성이 거짓이면 장소 세부 정보가 아직 가져오지 않은 것입니다. getDetails () 메서드를 호출하여 가져오기를 수행할 수 있습니다.

getDetails()도 참조하세요 .


editorialModel : EditorialModel [read-only]

이 속성은 장소에 대한 편집 설명을 검색하는 데 사용할 수 있는 모델을 보유합니다.


extendedAttributes : ExtendedAttributes [read-only]

이 속성은 장소의 확장 속성을 보유합니다. 확장 속성은 장소의 속성에 포함되지 않은 장소에 대한 추가 정보입니다.


favorite : Place

이 속성에는 장소의 즐겨찾기 인스턴스가 저장됩니다.


icon : Icon

이 속성은 장소를 나타내는 데 사용할 수 있는 그래픽 아이콘을 포함합니다.


imageModel : ImageModel [read-only]

이 속성은 장소의 이미지를 검색하는 데 사용할 수 있는 모델을 보유합니다.


이 속성은 좌표, 주소 및 경계 상자를 검색하는 데 사용할 수 있는 장소의 위치를 보유합니다.


name : string

이 속성은 장소를 나타내는 데 사용할 수 있는 장소의 이름을 보유합니다.


placeId : string

이 속성은 장소의 고유 식별자를 보유합니다. 장소 식별자는 해당 식별자를 생성한 Plugin 에서만 의미가 있으며 Plugins 사이에는 전송할 수 없습니다. 장소 ID는 보편적으로 고유하다는 보장은 없지만 이를 생성한 Plugin 내에서만 고유합니다.

장소 식별자만 알고 있는 경우 다른 모든 장소 데이터는 Plugin 에서 가져올 수 있습니다.

    place.plugin = myPlugin;
    place.placeId = "known-place-id";
    place.getDetails();

plugin : Plugin

이 속성은 서비스에 대한 자세한 정보를 검색하는 데 사용할 수 있는 이 장소를 제공한 Plugin 을 보유합니다.


primaryEmail : string [read-only]

이 속성은 장소의 기본 이메일 주소를 보유합니다. 이 장소에 대해 "이메일" 연락처 세부 정보가 정의되지 않은 경우 이 속성은 빈 문자열이 됩니다. 다음과 같습니다.

    var primaryEmail;
    if (place.contactDetails["email"].length > 0)
        primaryEmail = place.contactDetails["email"][0].value;

primaryFax : string [read-only]

이 속성은 장소의 기본 팩스 번호를 보유합니다. 이 장소에 대해 "팩스" 연락처 세부정보가 정의되어 있지 않으면 이 속성은 빈 문자열이 됩니다. 다음과 같습니다.

    var primaryFax;
    if (place.contactDetails["fax"].length > 0)
        primaryFax = place.contactDetails["fax"][0].value;

primaryPhone : string [read-only]

이 속성은 장소의 기본 전화번호를 보유합니다. 이 장소에 대해 "전화" 연락처 세부 정보가 정의되어 있지 않으면 이 속성은 빈 문자열이 됩니다. 다음과 같습니다:

    var primaryPhone;
    if (place.contactDetails["phone"].length > 0)
        primaryPhone = place.contactDetails["phone"][0].value;

primaryWebsite : string [read-only]

이 속성은 장소의 기본 웹사이트 URL을 보유합니다. 이 장소에 대해 "웹사이트" 연락처 세부 정보가 정의되어 있지 않으면 이 속성은 빈 문자열이 됩니다. 다음과 같습니다.

    var primaryWebsite;
    if (place.contactDetails["website"].length > 0)
        primaryWebsite = place.contactDetails["website"][0].value;

ratings : Ratings

이 속성은 장소의 평점을 보유합니다. 평점은 장소의 품질을 나타냅니다.


reviewModel : ReviewModel [read-only]

이 속성은 장소에 대한 리뷰를 검색하는 데 사용할 수 있는 모델을 보유합니다.


status : enumeration [read-only]

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

Place.Ready마지막 작업 중에 오류가 발생하지 않았으며, 장소에 대해 추가 작업을 수행할 수 있습니다.
장소.저장 중장소가 현재 저장 중이며 완료될 때까지 다른 작업을 수행할 수 없습니다.
Place.Fetching현재 장소 세부 정보를 불러오는 중이며, 완료될 때까지 다른 작업을 수행할 수 없습니다.
Place.Removing현재 장소를 제거하는 중이며, 완료될 때까지 다른 작업을 수행할 수 없습니다.
Place.Error마지막 작업 중에 오류가 발생했으며, 해당 장소에 대한 추가 작업은 계속 수행할 수 있습니다.

상태 속성을 핸들러 함수에 연결하여 장소의 상태를 확인한 다음 핸들러 함수가 상태 변경을 처리하도록 할 수 있습니다.

place.statusChanged.connect(statusChangedHandler);
    ...
function statusChangedHandler() {
    if (statusChangedHandler.prevStatus === Place.Saving) {
        switch (place.status) {
        case Place.Ready:
            console.log('Save successful');
            break;
        case Place.Error:
            console.log('Save failed');
            break;
        default:
            break;
        }
    }
    statusChangedHandler.prevStatus = place.status;
}

supplier : Supplier

이 속성은 장소 데이터의 공급업체를 보유합니다. 공급자는 일반적으로 장소에 대한 데이터를 수집한 비즈니스 또는 조직입니다.


가시성: enumeration

이 속성은 장소의 가시성을 유지합니다. 다음 중 하나 일 수 있습니다:

장소.지정되지 않은 가시성장소의 가시성이 지정되지 않은 경우 Plugin 의 기본 가시성이 사용됩니다.
장소.디바이스 가시성장소가 현재 디바이스로 제한됩니다. 장소가 디바이스 외부로 전송되지 않습니다.
장소.비공개 가시성장소가 현재 사용자에게 비공개입니다. 장소가 온라인 서비스로 전송될 수 있지만 현재 사용자에게만 표시됩니다.
장소.공개 가시성장소가 공개입니다.

공개 여부는 디바이스의 애플리케이션 사용자 인터페이스에서 장소가 표시되는 방식에는 영향을 미치지 않습니다. 대신 장소의 공유 의미를 정의합니다.


메서드 문서

void copyFrom(Place original)

original 장소의 데이터를 이 장소로 복사합니다. 이 장소의 플러그인에서 지원하는 데이터만 복사되며 장소 식별자와 같은 플러그인 특정 데이터는 복사되지 않습니다.


string errorString()

마지막 작업의 오류에 대한 문자열 설명을 반환합니다. 마지막 작업이 성공적으로 완료되면 문자열은 비어 있습니다.


void getDetails()

이 메서드는 장소 세부 정보 가져오기를 시작합니다.

가져오기가 진행되는 동안 status 속성은 Place.Fetching으로 변경됩니다. 성공하면 개체의 속성이 업데이트되고 status 은 Place.Ready로 설정되며 detailsFetched 은 true로 설정됩니다. 오류가 발생하면 status 은 Place.Error 로 설정됩니다. errorString () 메서드를 사용하여 오류의 세부 정보를 확인할 수 있습니다.


void initializeFavorite(Plugin destinationPlugin)

대상 플러그인에 저장할 장소의 즐겨찾기 인스턴스를 만듭니다 destinationPlugin. 즐겨찾기 속성이 null 이 아닌 경우 이 메서드는 아무 작업도 수행하지 않습니다.


void remove()

이 메서드는 장소에 대한 제거 작업을 수행합니다.

저장 작업이 진행되는 동안 status 속성은 Place.Removing으로 변경됩니다. 성공 시 status 은 Place.Ready로 설정됩니다. 오류 시 status 은 Place.Error 로 설정됩니다. errorString () 메서드를 사용하여 오류의 세부 정보를 가져올 수 있습니다.


void save()

이 메서드는 장소에 대한 저장 작업을 수행합니다.

저장 작업이 진행되는 동안 status 속성은 Place.Saving으로 변경됩니다. 성공하면 status 이 Place.Ready로 설정됩니다. 오류가 발생하면 status 이 Place.Error로 설정됩니다. errorString () 메서드를 사용하여 오류의 세부 정보를 확인할 수 있습니다.

placeId 속성이 이전에 비어 있었다면 저장 작업이 성공하면 유효한 값이 자동으로 할당됩니다.

PlaceSearchModel 은 업데이트를 감지하는 모든 위치에서 Place::getDetails 을 호출합니다. 그 결과 PlaceSearchModel 의 장소가 성공적으로 저장될 때마다 장소 세부 정보를 가져와 Saving, Ready, Fetching, Ready 의 상태 변경 시퀀스가 이어집니다.


© 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.