Map QML Type

Mapタイプは地図を表示します。詳細...

Import Statement: import QtLocation 6.8
Since: QtLocation 5.0

プロパティ

シグナル

メソッド

詳細な説明

Map型は地球の地図や画像を表示するためのもので、地図の表面に関連したインタラクティブなオブジェクトを表示することもできます。

地球の表面を2次元的に視覚化する方法はさまざまありますが、そのすべてに何らかの投影が関係しています。つまり、3D座標(緯度、経度、高度)と画面上の2D座標(ピクセル単位のXとY)の間の数学的な関係です。

地図データの異なるソースは異なる投影を使うことができ、Map タイプの観点からは、これらを1つの置き換え可能な単位、Map プラグインとして扱います。Mapプラグインはデータソースと、そのデータを画面に表示するために必要なその他の詳細から構成されます。

現在使用されている Map プラグインは、Map アイテムのplugin プロパティに含まれています。Map アイテムに画像を表示するには、このプロパティを設定する必要があります。使用する適切なプラグインを取得する方法については、Plugin タイプを参照してください。

Map アイテムに表示される地理的領域はビューポートと呼ばれ、これはプロパティcenter 、およびzoomLevel によって定義されます。center プロパティはビューポートの中心を指定するcoordinate を含み、zoomLevel はマップの縮尺を制御する。これらのプロパティの値の詳細については、それぞれのプロパティを参照してください。

マップが表示されるとき、表示可能な地理座標はそれぞれ、画面上のあるピクセルのX座標とY座標にマップされます。この2つの間の変換を行うために、Mapは一般的に有用な関数toCoordinatefromCoordinate を提供しています。

地図オブジェクト

マップ関連のオブジェクトはQt QuickのMapオブジェクトのボディの中で宣言することができ、自動的にマップ上に表示されます。プログラムでオブジェクトを追加するには、まず、そのオブジェクトがMapを親として作成されていることを確認してください(例えば、Component::createObject の引数で)。そして、このオブジェクトのタイプがMapCircle,MapRectangle,MapPolyline,MapPolygon,MapRoute,MapQuickItem のいずれかであれば、Map上でaddMapItem メソッドを呼び出します。対応するremoveMapItem メソッドも存在し、上記のタイプのマップオブジェクトをMapから削除することができます。

マップオブジェクトを移動させたり、サイズを変えたり、形を変えたりすることは、通常、マップ自体との特別なインタラクションを必要としません - マップオブジェクトのこれらのプロパティを変更すると、自動的に表示が更新されます。

パフォーマンス

マップはOpenGL (ES)とQt Scene Graphスタックを使ってレンダリングされます。

オンライン "マップの場合、ネットワーク帯域幅と待ち時間が、ユーザーのパフォーマンス知覚に大きく影響します。これを緩和するために広範なキャッシュが実行されますが、このような緩和は必ずしも完全ではありません。

一般的に、ポリゴンやポリラインのような頂点数の多い大きく複雑なマップアイテムは、UIパフォーマンスに悪影響を及ぼす可能性があります。

使用例

次のスニペットは簡単なMapと、それを使うために必要なPluginタイプを示しています。地図はノルウェーのオスロを中心としており、ズームレベルは14です。

import QtQuick
import QtLocation
import QtPositioning

Window {
    ...
    Plugin {
        id: mapPlugin
        name: "osm"
    }

    Map {
        id: map
        anchors.fill: parent
        plugin: mapPlugin
        center: QtPositioning.coordinate(59.91, 10.75) // Oslo
        zoomLevel: 14
        property geoCoordinate startCentroid

        PinchHandler {
            id: pinch
            target: null
            onActiveChanged: if (active) {
                map.startCentroid = map.toCoordinate(pinch.centroid.position, false)
            }
            onScaleChanged: (delta) => {
                map.zoomLevel += Math.log2(delta)
                map.alignCoordinateToPoint(map.startCentroid, pinch.centroid.position)
            }
            onRotationChanged: (delta) => {
                map.bearing -= delta
                map.alignCoordinateToPoint(map.startCentroid, pinch.centroid.position)
            }
            grabPermissions: PointerHandler.TakeOverForbidden
        }
        WheelHandler {
            id: wheel
            // workaround for QTBUG-87646 / QTBUG-112394 / QTBUG-112432:
            // Magic Mouse pretends to be a trackpad but doesn't work with PinchHandler
            // and we don't yet distinguish mice and trackpads on Wayland either
            acceptedDevices: Qt.platform.pluginName === "cocoa" || Qt.platform.pluginName === "wayland"
                             ? PointerDevice.Mouse | PointerDevice.TouchPad
                             : PointerDevice.Mouse
            rotationScale: 1/120
            property: "zoomLevel"
        }
        DragHandler {
            id: drag
            target: null
            onTranslationChanged: (delta) => map.pan(-delta.x, -delta.y)
        }
        Shortcut {
            enabled: map.zoomLevel < map.maximumZoomLevel
            sequence: StandardKey.ZoomIn
            onActivated: map.zoomLevel = Math.round(map.zoomLevel + 1)
        }
        Shortcut {
            enabled: map.zoomLevel > map.minimumZoomLevel
            sequence: StandardKey.ZoomOut
            onActivated: map.zoomLevel = Math.round(map.zoomLevel - 1)
        }
    }
}

プロパティ・ドキュメンテーション

activeMapType : mapType

現在アクティブなmap type へのアクセス。

このプロパティは、アクティブなmap type を変更するために設定することができます。設定可能な値についてはsupportedMapTypes プロパティを参照してください。

mapTypeも参照。


bearing : real [since QtLocation 5.9]

このプロパティはマップの方位を保持します。マップに使用されているプラグインが方位をサポートしている場合、この値の有効範囲は 0 ~ 360 です。マップに使用されているプラグインが方位をサポートしていない場合、このプロパティを変更しても効果はありません。

このプロパティはQtLocation 5.9で導入されました。


center : coordinate

このプロパティは、マッピングビューポートの中心を占める座標を保持します。無効な中心座標は無視されます。

デフォルト値は任意の有効な座標である。


color : color

このプロパティは、マップ要素の背景色を保持します。


copyrightsVisible : bool

このプロパティは、著作権表示の可視性を保持します。通常、著作権表示は左下に表示されます。デフォルトでは、このプロパティはtrue に設定されています。

注: 多くの地図プロバイダは、利用規約の一部として通知を表示することを要求しています。この通知をオフにする前に、関連するプロバイダのドキュメントを参照してください。


error : enumeration [read-only]

この読み取り専用プロパティは、最後に発生したマッピングサービスプロバイダのエラーを保持します。

  • 地図。NoError - エラーは発生していません。
  • Map.NotSupportedError -マップ プラグイン プロパティが設定されていないか、プラグインに関連付けられているマッピング マネージャがありません。
  • Map.UnknownParameterError -プラグインが指定されたパラメータを認識できませんでした。
  • Map.MissingRequiredParameterError - プラグインが指定したパラメータが見つかりません。
  • Map.ConnectionError - プラグインがバックエンド サービスまたはデータベースに接続できませんでした。

QGeoServiceProvider::Errorも参照してください


errorString : string [read-only]

この読み取り専用プロパティは、最新のマッピング・プロバイダ・エラーのテキスト表示を保持します。エラーが発生していない場合は、空の文字列が返されます。

関連するテキスト表現がないエラーが発生した場合は、空の文字列が返されることもあります。

QGeoServiceProvider::errorString()も参照してください


fieldOfView : real [since QtLocation 5.9]

このプロパティは、マップを見るために使用されるカメラの視野を度単位で保持します。マップのプラグイン・プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、値は45度になります。

この値を変更すると、カメラとマップ間の距離も暗黙のうちに変更されるため、傾斜角度が0度の場合、このプロパティに使用されるどの値でも、結果として得られる画像は同じであることに注意してください。

このパラメータの詳細については、WikipediaのField of viewと Angle of viewの記事を参照してください。

このプロパティはQtLocation 5.9で導入されました。

minimumFieldOfView およびmaximumFieldOfViewも参照してください


mapItems : list<MapItem> [read-only]

すべてのマップアイテムのリストを順不同で返します。これらの項目には、型宣言の一部として静的に宣言された項目と、動的な項目 (addMapItem,MapItemView) が含まれます。

addMapItem,removeMapItem,clearMapItemsも参照してください


mapReady : bool [read-only]

このプロパティは、マップが正常に初期化され、使用できる状態にあるかどうかを保持します。fromCoordinatetoCoordinate などの一部のメソッドは、マップの準備が整うまでは動作しません。Map のアーキテクチャーにより、Component.onCompleted の代わりに、このプロパティに対して発せられるシグナルを使用し、すべてが期待通りに動作することを確認することをお勧めします。


maximumFieldOfView : real [since QtLocation 5.9]

このプロパティは、マップの最大有効視野を度単位で保持します。

使用されるplugin による最小傾斜視野が、このプロパティの上限となる。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは179 になります。

このプロパティは QtLocation 5.9 で導入されました。

fieldOfView およびminimumFieldOfViewも参照してください


maximumTilt : real [since QtLocation 5.9]

このプロパティは、マップに有効な傾きの最大値を度単位で保持します。

使用されるplugin で定義される最大傾きが、このプロパティの上限となります。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは89.5 になります。

QtLocation 5.12以降、プラグインはさらに、現在のズーム・レベルに応じてこの値を制限することができます。

このプロパティは QtLocation 5.9 で導入されました。

tilt およびminimumTiltも参照してください


maximumZoomLevel : real

このプロパティは、マップの最大有効ズームレベルを保持します。

最大ズームレベルは、使用されるplugin によって定義されます。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは30 になります。


minimumFieldOfView : real [since QtLocation 5.9]

このプロパティは、マップの最小有効視野を度単位で保持します。

使用されるplugin による最小傾斜視野が、このプロパティの下界となる。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは1 になります。

このプロパティはQtLocation 5.9で導入されました。

fieldOfView およびmaximumFieldOfViewも参照してください


minimumTilt : real [since QtLocation 5.9]

このプロパティは、マップの有効な傾きの最小値を度単位で保持します。

使用されているplugin で定義されている最小傾きが、このプロパティの下限となります。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは0 になります。

QtLocation 5.12以降、プラグインはさらに、現在のズーム・レベルに応じてこの値を制限することができます。

このプロパティは QtLocation 5.9 で導入されました。

tilt およびmaximumTiltも参照してください


minimumZoomLevel : real

このプロパティは、マップの有効なズームレベルの最小値を保持します。

使用されているplugin で定義されている最小ズームレベルが、このプロパティの下限です。しかし、返される値はキャンバスのサイズにも依存し、マップがビューポートより小さくなるのを防ぐために、ユーザが指定した値や、使用されているプラグインによって定義された最小ズームレベルより高くすることができます。

plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは0


plugin : Plugin

このプロパティは、マッピング機能を提供するプラグインを保持する。

これはライトワンス・プロパティです。一度マップにプラグインが関連付けられると、プラグインを変更しようとしても無視されます。


supportedMapTypes : list<mapType> [read-only]

この読み取り専用プロパティは、このマップがサポートするmap types のセットを保持します。

activeMapTypeも参照してください


tilt : real [since QtLocation 5.9]

このプロパティはマップの傾きを度単位で保持します。この値の有効範囲は [minimumTilt,maximumTilt ] です。マップに使用されているプラグインが傾きをサポートしていない場合、このプロパティを変更しても効果はありません。

このプロパティは QtLocation 5.9 で導入されました。

minimumTiltmaximumTiltも参照して ください。


visibleArea : rect

このプロパティは Map QML 要素内の可視領域を保持します。このプロパティの座標は Map 要素からの相対座標です。そのサイズは Map 要素のサイズにクランプされます。null の visibleArea は Map 全体が可視であることを意味する。


visibleRegion : geoshape

このプロパティは、マップのビューポートを占める領域を保持します。カメラはシェイプの中心に配置され、シェイプ全体がスクリーンに表示されるように、可能な限り最大の積分ズーム・レベルに設定されます。これは、このプロパティが設定された直後にこのプロパティを読み返すと、返される領域が設定された領域と等しいか大きくなることを意味する。

このプロパティを設定すると、マップのcenterzoomLevel が暗黙のうちに変更されます。これらのプロパティに以前に設定された値は上書きされます。

注: Qt 5.14 以降、このプロパティは変更通知を提供します。


zoomLevel : real

このプロパティは、マップのズームレベルを保持します。

ズーム・レベルの値が大きいほど、より詳細な情報が得られます。ズーム・レベルは常に非負です。デフォルト値は 8.0 です。使用するプラグインによっては、タイルが利用可能な範囲を表す [minimumZoomLevel,maximumZoomLevel] の範囲外の値が受け入れられるか、クランプされる場合があります。


シグナル・ドキュメント

copyrightLinkActivated(string link)

このシグナルは、ユーザーが著作権表示のlink をクリックしたときに発せられます。アプリケーションは、ブラウザでリンクを開くか、その内容をユーザーに表示する必要があります。

注: 対応するハンドラはonCopyrightLinkActivated


メソッドの説明

void addMapItem(MapItem item)

指定されたitem を Map に追加します(例:MapQuickItem,MapCircle )。オブジェクトがすでにマップ上にある場合、再度追加されることはありません。

例として、現在位置を表すMapCircle がある場合を考えてみましょう:

import QtQuick
import QtPositioning
import QtLocation

PositionSource {
    id: positionSource
}

Map {
    id: map
    property MapCircle circle

    Component.onCompleted: {
        circle = Qt.createQmlObject('import QtLocation; MapCircle {}', page)
        circle.center = positionSource.position.coordinate
        circle.radius = 5000.0
        circle.color = 'green'
        circle.border.width = 3
        map.addMapItem(circle)
    }
}

注意: MapItemViews はこのメソッドでは追加できません。

mapItemsremoveMapItem 、およびclearMapItemsも参照してください


void addMapItemGroup(MapItemGroup itemGroup)

与えられたitemGroup に含まれるマップアイテムをマップに追加します(例:MapQuickItem,MapCircle )。

MapItemGroup およびremoveMapItemGroupも参照して ください。


void addMapItemView(MapItemView itemView)

itemView をマップに追加します。

MapItemView およびremoveMapItemViewも参照して ください。


void alignCoordinateToPoint(coordinate coordinate, QPointF point)

coordinate pointこのメソッドは、center qml プロパティによって提供される機能を効果的に拡張し、Map 要素の中心以外の点に座標を合わせることを可能にします。これは、シーンの中心(例えば、カーソル)がマップの中心に正確に配置されないようなアプリケーションで便利です。

マップが傾いていて、coordinate がカメラの後ろにある場合、またはマップの準備ができていない場合(mapReady を参照)、このメソッドを呼び出しても効果はありません。

この API の Qt 5.10 でのリリースは技術プレビューです。

centerも参照してください


void clearData()

現在選択されているプラグインによって収集されたマップデータをクリアします。

注意: このメソッドはキャッシュされたファイルを削除します。

plugin参照して ください。


void clearMapItems()

マップからすべてのアイテムとアイテム グループを削除します。

mapItems,addMapItem,removeMapItem,addMapItemGroup,removeMapItemGroupも参照して ください。


void fitViewportToGeoShape(geoShape, margins)

ビューポートを特定のジオ形状に合わせるgeoShapemargins の単位はスクリーンピクセルです。

注意: プラグインが使用するプロジェクションが WebMercator でなく、プラグインに形状へのフィット機能がない場合、このメソッドは何もしません。

visibleRegionも参照してください


void fitViewportToMapItems(list<MapItems> items = {})

引数を指定しない場合は、現在のビューポートをすべてのマップアイテムの境界にフィットさせます。カ メ ラ は、 マ ッ プ項目の中央に、 ま た、 すべてのマ ッ プ項目が画面に表示で き る最大の積分倍率で配置 さ れます。items が指定された場合、現在のビューポートを指定されたマップアイテムの境界のみに合わせる。

注意: Qt 5.15 以降、このメソッドはオプションの引数items を持つようになりました。以前のリリースでは、このメソッドはすべてのマップアイテムにマップをフィットしていました。

fitViewportToVisibleMapItemsも参照してください


void fitViewportToVisibleMapItems()

現在のビューポートを、表示されているすべてのマップアイテムの境界に合わせます。カメラはマップアイテムの中央に配置され、すべてのマップアイテムが画面に表示されるように、可能な限り最大の積分ズームレベルで配置されます。

fitViewportToMapItemsも参照してください


point fromCoordinate(coordinate coordinate, bool clipToViewPort)

coordinate に対応するマップアイテムからの相対位置を返す。

clipToViewPorttrue の場合、またはcoordinate が現在のビューポート内にない場合は、無効なQPointF を返す。


void pan(int dx, int dy)

x 軸に沿ってdx ピクセル、y 軸に沿ってdy ピクセル、マップのパンニングを開始する。

dx の正の値はマップを右に動かし、負の値は左に動かす。dy の正の値はマップを下に動かし、負の値は上に動かす。

パンしている間、centerzoomLevel は変化することがある。


void prefetchData()

オプ シ ョ ン ヒ ン ト : こ のア イ ド ル期間中にマ ッ プがプ リ フ ェ ッ チで き る よ う にす る 。


void removeMapItem(MapItem item)

与えられたitem をマップから削除します(例えばMapQuickItem,MapCircle )。MapItem が存在しないか、以前にマップに追加されていない場合、このメソッドは何もしない。

mapItemsaddMapItem 、およびclearMapItemsも参照してください


void removeMapItemGroup(MapItemGroup itemGroup)

itemGroup およびその中に含まれるアイテムをマップから削除します。

MapItemGroup およびaddMapItemGroup参照して ください。


void removeMapItemView(MapItemView itemView)

itemView およびそれによってインスタンス化されたアイテムをマップから削除します。

MapItemView およびaddMapItemView参照して ください。


void setBearing(real bearing, coordinate coordinate)

マップの方位をbearing に設定し、coordinate を中心に回転させます。マップに使用されているプラグインが方位をサポートしている場合、bearing の有効範囲は 0 ~ 360 です。マップに使用されているプラグインが方位をサポートしていない場合、マップが傾いていてcoordinate がカメラの後ろにある場合、またはマップの準備ができていない場合(mapReady を参照)、このメソッドを呼び出しても効果はありません。

この API の Qt 5.10 でのリリースは技術プレビューです。


coordinate toCoordinate(QPointF position, bool clipToViewPort)

マップアイテムからの相対座標position に対応する座標を返します。

clipToViewPorttrue の場合、またはposition が現在のビューポート内にない場合は、無効な座標を返します。


本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。