Map QML Type
Mapタイプは地図を表示します。詳細...
Import Statement: | import QtLocation 6.8 |
Since: | QtLocation 5.0 |
- 継承メンバを含む全メンバ一覧
- MapはQML Maps Pluginの一部です。
プロパティ
- activeMapType : mapType
- bearing : real
(since QtLocation 5.9)
- center : coordinate
- color : color
- copyrightsVisible : bool
- error : enumeration
- errorString : string
- fieldOfView : real
(since QtLocation 5.9)
- mapItems : list<MapItem>
- mapReady : bool
- maximumFieldOfView : real
(since QtLocation 5.9)
- maximumTilt : real
(since QtLocation 5.9)
- maximumZoomLevel : real
- minimumFieldOfView : real
(since QtLocation 5.9)
- minimumTilt : real
(since QtLocation 5.9)
- minimumZoomLevel : real
- plugin : Plugin
- supportedMapTypes : list<mapType>
- tilt : real
(since QtLocation 5.9)
- visibleArea : rect
- visibleRegion : geoshape
- zoomLevel : real
シグナル
- copyrightLinkActivated(string link)
メソッド
- void addMapItem(MapItem item)
- void addMapItemGroup(MapItemGroup itemGroup)
- void addMapItemView(MapItemView itemView)
- void alignCoordinateToPoint(coordinate coordinate, QPointF point)
- void clearData()
- void clearMapItems()
- void fitViewportToGeoShape(geoShape, margins)
- void fitViewportToMapItems(list<MapItems> items)
- void fitViewportToVisibleMapItems()
- point fromCoordinate(coordinate coordinate, bool clipToViewPort)
- void pan(int dx, int dy)
- void prefetchData()
- void removeMapItem(MapItem item)
- void removeMapItemGroup(MapItemGroup itemGroup)
- void removeMapItemView(MapItemView itemView)
- void setBearing(real bearing, coordinate coordinate)
- coordinate toCoordinate(QPointF position, bool clipToViewPort)
詳細な説明
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は一般的に有用な関数toCoordinate とfromCoordinate を提供しています。
地図オブジェクト
マップ関連のオブジェクトは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 |
このプロパティはマップの方位を保持します。マップに使用されているプラグインが方位をサポートしている場合、この値の有効範囲は 0 ~ 360 です。マップに使用されているプラグインが方位をサポートしていない場合、このプロパティを変更しても効果はありません。
このプロパティはQtLocation 5.9で導入されました。
center : coordinate |
このプロパティは、マッピングビューポートの中心を占める座標を保持します。無効な中心座標は無視されます。
デフォルト値は任意の有効な座標である。
color : color |
このプロパティは、マップ要素の背景色を保持します。
copyrightsVisible : bool |
このプロパティは、著作権表示の可視性を保持します。通常、著作権表示は左下に表示されます。デフォルトでは、このプロパティはtrue
に設定されています。
注: 多くの地図プロバイダは、利用規約の一部として通知を表示することを要求しています。この通知をオフにする前に、関連するプロバイダのドキュメントを参照してください。
error : enumeration |
この読み取り専用プロパティは、最後に発生したマッピングサービスプロバイダのエラーを保持します。
- 地図。NoError - エラーは発生していません。
- Map.NotSupportedError -マップ プラグイン プロパティが設定されていないか、プラグインに関連付けられているマッピング マネージャがありません。
- Map.UnknownParameterError -プラグインが指定されたパラメータを認識できませんでした。
- Map.MissingRequiredParameterError - プラグインが指定したパラメータが見つかりません。
- Map.ConnectionError - プラグインがバックエンド サービスまたはデータベースに接続できませんでした。
QGeoServiceProvider::Errorも参照してください 。
errorString : string |
この読み取り専用プロパティは、最新のマッピング・プロバイダ・エラーのテキスト表示を保持します。エラーが発生していない場合は、空の文字列が返されます。
関連するテキスト表現がないエラーが発生した場合は、空の文字列が返されることもあります。
QGeoServiceProvider::errorString()も参照してください 。
fieldOfView : real |
このプロパティは、マップを見るために使用されるカメラの視野を度単位で保持します。マップのプラグイン・プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、値は45度になります。
この値を変更すると、カメラとマップ間の距離も暗黙のうちに変更されるため、傾斜角度が0度の場合、このプロパティに使用されるどの値でも、結果として得られる画像は同じであることに注意してください。
このパラメータの詳細については、WikipediaのField of viewと Angle of viewの記事を参照してください。
このプロパティはQtLocation 5.9で導入されました。
minimumFieldOfView およびmaximumFieldOfViewも参照してください 。
mapItems : list<MapItem> |
すべてのマップアイテムのリストを順不同で返します。これらの項目には、型宣言の一部として静的に宣言された項目と、動的な項目 (addMapItem,MapItemView) が含まれます。
addMapItem,removeMapItem,clearMapItemsも参照してください 。
mapReady : bool |
このプロパティは、マップが正常に初期化され、使用できる状態にあるかどうかを保持します。fromCoordinate やtoCoordinate などの一部のメソッドは、マップの準備が整うまでは動作しません。Map のアーキテクチャーにより、Component.onCompleted の代わりに、このプロパティに対して発せられるシグナルを使用し、すべてが期待通りに動作することを確認することをお勧めします。
maximumFieldOfView : real |
このプロパティは、マップの最大有効視野を度単位で保持します。
使用されるplugin による最小傾斜視野が、このプロパティの上限となる。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは179
になります。
このプロパティは QtLocation 5.9 で導入されました。
fieldOfView およびminimumFieldOfViewも参照してください 。
maximumTilt : real |
このプロパティは、マップに有効な傾きの最大値を度単位で保持します。
使用されるplugin で定義される最大傾きが、このプロパティの上限となります。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは89.5
になります。
QtLocation 5.12以降、プラグインはさらに、現在のズーム・レベルに応じてこの値を制限することができます。
このプロパティは QtLocation 5.9 で導入されました。
tilt およびminimumTiltも参照してください 。
maximumZoomLevel : real |
minimumFieldOfView : real |
このプロパティは、マップの最小有効視野を度単位で保持します。
使用されるplugin による最小傾斜視野が、このプロパティの下界となる。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは1
になります。
このプロパティはQtLocation 5.9で導入されました。
fieldOfView およびmaximumFieldOfViewも参照してください 。
minimumTilt : real |
このプロパティは、マップの有効な傾きの最小値を度単位で保持します。
使用されているplugin で定義されている最小傾きが、このプロパティの下限となります。plugin プロパティが設定されていないか、プラグインがマッピングをサポートしていない場合、このプロパティは0
になります。
QtLocation 5.12以降、プラグインはさらに、現在のズーム・レベルに応じてこの値を制限することができます。
このプロパティは QtLocation 5.9 で導入されました。
tilt およびmaximumTiltも参照してください 。
minimumZoomLevel : real |
plugin : Plugin |
このプロパティは、マッピング機能を提供するプラグインを保持する。
これはライトワンス・プロパティです。一度マップにプラグインが関連付けられると、プラグインを変更しようとしても無視されます。
この読み取り専用プロパティは、このマップがサポートするmap types のセットを保持します。
activeMapTypeも参照してください 。
tilt : real |
このプロパティはマップの傾きを度単位で保持します。この値の有効範囲は [minimumTilt,maximumTilt ] です。マップに使用されているプラグインが傾きをサポートしていない場合、このプロパティを変更しても効果はありません。
このプロパティは QtLocation 5.9 で導入されました。
minimumTilt とmaximumTiltも参照して ください。
visibleArea : rect |
このプロパティは Map QML 要素内の可視領域を保持します。このプロパティの座標は Map 要素からの相対座標です。そのサイズは Map 要素のサイズにクランプされます。null の visibleArea は Map 全体が可視であることを意味する。
visibleRegion : geoshape |
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 はこのメソッドでは追加できません。
mapItems 、removeMapItem 、およびclearMapItemsも参照してください 。
void addMapItemGroup(MapItemGroup itemGroup) |
与えられたitemGroup に含まれるマップアイテムをマップに追加します(例:MapQuickItem,MapCircle )。
MapItemGroup およびremoveMapItemGroupも参照して ください。
void addMapItemView(MapItemView itemView) |
itemView をマップに追加します。
MapItemView およびremoveMapItemViewも参照して ください。
void alignCoordinateToPoint(coordinate coordinate, QPointF point) |
void clearData() |
void clearMapItems() |
マップからすべてのアイテムとアイテム グループを削除します。
mapItems,addMapItem,removeMapItem,addMapItemGroup,removeMapItemGroupも参照して ください。
void fitViewportToGeoShape(geoShape, margins) |
ビューポートを特定のジオ形状に合わせるgeoShape 。margins の単位はスクリーンピクセルです。
注意: プラグインが使用するプロジェクションが WebMercator でなく、プラグインに形状へのフィット機能がない場合、このメソッドは何もしません。
visibleRegionも参照してください 。
void fitViewportToMapItems(list<MapItems> items = {}) |
引数を指定しない場合は、現在のビューポートをすべてのマップアイテムの境界にフィットさせます。カ メ ラ は、 マ ッ プ項目の中央に、 ま た、 すべてのマ ッ プ項目が画面に表示で き る最大の積分倍率で配置 さ れます。items が指定された場合、現在のビューポートを指定されたマップアイテムの境界のみに合わせる。
注意: Qt 5.15 以降、このメソッドはオプションの引数items を持つようになりました。以前のリリースでは、このメソッドはすべてのマップアイテムにマップをフィットしていました。
fitViewportToVisibleMapItemsも参照してください 。
void fitViewportToVisibleMapItems() |
現在のビューポートを、表示されているすべてのマップアイテムの境界に合わせます。カメラはマップアイテムの中央に配置され、すべてのマップアイテムが画面に表示されるように、可能な限り最大の積分ズームレベルで配置されます。
fitViewportToMapItemsも参照してください 。
point fromCoordinate(coordinate coordinate, bool clipToViewPort) |
coordinate に対応するマップアイテムからの相対位置を返す。
clipToViewPort がtrue
の場合、またはcoordinate が現在のビューポート内にない場合は、無効なQPointF を返す。
void prefetchData() |
オプ シ ョ ン ヒ ン ト : こ のア イ ド ル期間中にマ ッ プがプ リ フ ェ ッ チで き る よ う にす る 。
void removeMapItem(MapItem item) |
与えられたitem をマップから削除します(例えばMapQuickItem,MapCircle )。MapItem が存在しないか、以前にマップに追加されていない場合、このメソッドは何もしない。
mapItems 、addMapItem 、および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 に対応する座標を返します。
clipToViewPort がtrue
の場合、またはposition が現在のビューポート内にない場合は、無効な座標を返します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。