MapItemGroup QML Type

MapItemGroup タイプはマップアイテムのコンテナです。詳細...

Import Statement: import QtLocation 6.8
Since: QtLocation 5.9

詳しい説明

MapItemGroup は QML Maps Plugin の一部であり、互いに関連するマップ要素や関連するバインディングを含む qml ファイルを使用できるようにすることで、コードのモジュール化を可能にすることを目的としています。

注意: Qt 5.9 でリリースされたこの API は技術プレビューです。

使用例

次のスニペットは、MapItemGroup を使って、MapCircle を作成する方法を示しています。座標 (63, -18) を中心に半径 100km、赤で塗りつぶされ、緑の境界線で囲まれ、どちらも半透明の青い円に含まれ、MouseArea でグループ全体が移動します。このグループはPolygonGroup.qmlという別のファイルで定義されている:

import QtQuick
import QtPositioning
import QtLocation

MapItemGroup {
    id: itemGroup
    property alias position: mainCircle.center
    property var radius: 100 * 1000
    property var borderHeightPct : 0.3

    MapCircle {
        id: mainCircle
        center : QtPositioning.coordinate(40, 0)
        radius: itemGroup.radius * (1.0 + borderHeightPct)
        opacity: 0.05
        visible: true
        color: 'blue'

        MouseArea{
            anchors.fill: parent
            drag.target: parent
            id: maItemGroup
        }
    }

    MapCircle {
        id: groupCircle
        center: itemGroup.position
        radius: itemGroup.radius
        color: 'crimson'

        onCenterChanged: {
            groupPolyline.populateBorder();
        }
    }

    MapPolyline {
        id: groupPolyline
        line.color: 'green'
        line.width: 3

        function populateBorder() {
            groupPolyline.path = [] // clearing the path
            var waveLength = 8.0;
            var waveAmplitude = groupCircle.radius * borderHeightPct;
            for (var i=0; i <= 360; i++) {
                var wavePhase = (i/360.0 * 2.0 * Math.PI )* waveLength
                var waveHeight = (Math.cos(wavePhase) + 1.0) / 2.0
                groupPolyline.addCoordinate(groupCircle.center.atDistanceAndAzimuth(groupCircle.radius + waveAmplitude * waveHeight , i))
            }
        }

        Component.onCompleted: {
            populateBorder()
        }
    }
}

PolygonGroup.qmlは再利用可能なコンポーネントとなり、Mapで使用することができます:

Map {
    id: map
    PolygonGroup {
        id: polygonGroup
        position: QtPositioning.coordinate(63,-18)
    }
}

PolygonGroup.qml は再利用可能なコンポーネントとなり、次のように Map で使用することができます©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。