2016-12-01 3 views
0

Geolocated 폴리 라인을 그리기 위해 QML 5.7에서 빈 Map을 렌더링하려고합니다.지도 플러그인이 서비스 제공 업체를 표시하지 않습니다.

Map { 
    anchors.fill:parent 
    plugin: Plugin { 
     name: "osm" 
     Component.onCompleted: console.log('a',availableServiceProviders.length) 
    } 

    MapPolyline { 
     line.color: "#299FE7"; line.width: 3 
     path: parent.points 
    } 

    Timer { 
     running:true; interval:1000 
     onTriggered: console.log('b',parent.supportedMapTypes.length) 
    } 
} 

위의 출력 : 그러나, 플러그인지도 데이터를 제공 할 수 없습니다

qml: a 0 
qml: b 0 

왜 내가 어떤 플러그인을 사용할 수없는, 내가 한 일을 어떻게받을 수 있나요?

답변

4

Qt는 특정 공급자의 사용을 강제하지 않으므로 기본 공급자가 없습니다. 이용 가능한 모든 서비스가 등록 (그리고 계약/수락의 승낙)을 필요로하는 경우에도 더욱 그렇습니다.

사용 가능한 플러그인 목록은 here입니다. 링크를 따라 가면 각 설정의 사용법에 대한 특정 설정을 읽을 수 있습니다.

바로 그 같은 작업은 C++/비 QML 프로젝트에서 수행 할 수
Plugin { 
    name: <provider_name> // { "here" | "mapbox" | "osm" } 
    PluginParameter { name: <param_name>; value: <param_value> } 
    // other parameters 
} 

를 통해 : QML에서 공급자를 추가

그 라인을 따라 Plugin 유형, 뭔가를 선언의 문제입니다 QGeoServiceProvider 클래스.

몇 달 전에 MapQuest changed에 액세스하여 Open Street Map 플러그인을 위반했다는 사실을 염두에 두십시오. 이제 서비스에 액세스하려면 자격 증명이 필요합니다. this comment을 읽으십시오. 관련 패치는 마지막 링크 된 설명의 버그 보고서 페이지에 명시된 바와 같이 푸시되고 병합되었으며 Qt 5.6.2 (및 Qt 5.7.1) 패치 릴리스에서 사용할 수 있습니다.