このページでは

MapItemGroup QML Type

MapItemGroup 型は、マップアイテムを格納するためのコンテナです。詳細...

Import Statement: import QtLocation 6.12
Since: QtLocation 5.9

詳細な説明

その目的は、相互に関連するマップ要素および関連するバインディングを含む qml ファイルの使用を可能にすることで、コードのモジュール化を実現することです。

注: Qt 5.9 でのこの APIのリリースは 、テクノロジープレビューです。

使用例

以下のスニペットは、MapItemGroup を使用して、座標 (63, -18) を中心とし、半径 100km、内部を赤で塗りつぶし、波状の緑色の境界線で囲んだMapCircle を作成する方法を示しています。これらは両方とも、グループ全体を移動させる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)
    }
}

アイスランドの地図上に描かれた、赤と緑のポリゴンが重なっている

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