Qt Location 지오서비스

Qt Location 은 대부분의 기능을 지오서비스 플러그인을 통해 제공합니다. 이 문서에서는 새로운 지리 서비스 플러그인을 개발하는 방법을 설명합니다.

플러그인 설명

각 플러그인은 json 파일로 설명됩니다. json에는 플러그인의 기능과 버전이 설명되어 있습니다. 아래는 오픈스트리트맵 플러그인에서 사용하는 json 파일의 예시입니다:

{
    "Keys": ["osm"],
    "Provider": "osm",
    "Version": 100,
    "Experimental": false,
    "Features": [
        "OnlineMappingFeature",
        "OnlineGeocodingFeature",
        "ReverseGeocodingFeature",
        "OnlineRoutingFeature",
        "OnlinePlacesFeature"
    ]
}

각 항목의 의미는 다음과 같습니다:

설명
플러그인의 고유한 이름/키입니다. 각 GeoService 플러그인에는 고유한 이름이 있어야 합니다.
공급자서비스의 공급자 이름입니다. 여러 플러그인이 같은 이름을 가질 수 있습니다. 이러한 경우 버전 문자열을 사용하여 플러그인을 더 구분할 수 있습니다.
Experimental서비스 플러그인을 실험 단계로 표시합니다. API 개발자는 QGeoServiceProvider::QGeoServiceProvider()를 인스턴스화할 때 이러한 플러그인을 무시하도록 선택할 수 있습니다.
버전플러그인 버전입니다. 여러 플러그인의 공급자 이름이 동일한 경우 가장 높은 버전의 플러그인이 사용됩니다.
기능플러그인/서비스에서 제공하는 기능 목록입니다. 각 기능은 QGeoServiceProvider 에서 해당 기능을 문자열로 표현한 것입니다. 자세한 내용은 QGeoServiceProvider::routingFeatures(), QGeoServiceProvider::geocodingFeatures() 및 QGeoServiceProvider::placesFeatures()를 참조하세요.

플러그인 구현하기

플러그인 구현자는 구현을 제공하고자 하는 만큼의 매니저 엔진 클래스와 QGeoServiceProviderFactory를 서브클래싱해야 합니다.

QGeoServiceProviderFactory를 서브클래싱하려면 다음 메서드 중 하나만 오버라이드하면 됩니다:

플러그인이 엔진을 제공하지 않는 경우 관련 함수는 nullptr 을 반환해야 합니다.

QGeoCodingManagerEngine

지오코딩 작업을 지원하고자 하는 QGeoServiceProvider 플러그인 구현자를 위한 인터페이스 및 편의 메서드

QGeoRoutingManagerEngine

지리적 라우팅 정보에 대한 액세스를 제공하려는 QGeoServiceProvider 플러그인 구현자를 위한 인터페이스 및 편의 방법

QPlaceManagerEngine

장소 기능에 대한 액세스를 제공하려는 QGeoServiceProvider 플러그인 구현자를 위한 인터페이스

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