QGeoCoordinate Class
QGeoCoordinateクラスは、地球の表面上の地理的な位置を定義します。詳細...
Header: | #include <QGeoCoordinate> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Positioning) target_link_libraries(mytarget PRIVATE Qt6::Positioning) |
qmake: | QT += positioning |
パブリックタイプ
enum | CoordinateFormat { Degrees, DegreesWithHemisphere, DegreesMinutes, DegreesMinutesWithHemisphere, DegreesMinutesSeconds, DegreesMinutesSecondsWithHemisphere } |
enum | CoordinateType { InvalidCoordinate, Coordinate2D, Coordinate3D } |
プロパティ
パブリック関数
QGeoCoordinate() | |
QGeoCoordinate(double latitude, double longitude) | |
QGeoCoordinate(double latitude, double longitude, double altitude) | |
QGeoCoordinate(const QGeoCoordinate &other) | |
(since 6.2) | QGeoCoordinate(QGeoCoordinate &&other) |
~QGeoCoordinate() | |
double | altitude() const |
QGeoCoordinate | atDistanceAndAzimuth(qreal distance, qreal azimuth, qreal distanceUp = 0.0) const |
qreal | azimuthTo(const QGeoCoordinate &other) const |
qreal | distanceTo(const QGeoCoordinate &other) const |
bool | isValid() const |
double | latitude() const |
double | longitude() const |
void | setAltitude(double altitude) |
void | setLatitude(double latitude) |
void | setLongitude(double longitude) |
QString | toString(QGeoCoordinate::CoordinateFormat format = DegreesMinutesSecondsWithHemisphere) const |
QGeoCoordinate::CoordinateType | type() const |
(since 6.2) QGeoCoordinate & | operator=(QGeoCoordinate &&other) |
QGeoCoordinate & | operator=(const QGeoCoordinate &other) |
関連する非メンバー
bool | operator!=(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs) |
QDataStream & | operator<<(QDataStream &stream, const QGeoCoordinate &coordinate) |
bool | operator==(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs) |
QDataStream & | operator>>(QDataStream &stream, QGeoCoordinate &coordinate) |
詳細説明
QGeoCoordinate は、緯度、経度、およびオプションで高度によって定義されます。
type() を使用して、座標が 2D 座標 (緯度と経度のみを持つ) か 3D 座標 (緯度、経度、および高度を持つ) かを判定します。座標間の距離と方位を計算するにはdistanceTo() とazimuthTo() を使います。
座標値は WGS84 基準を用いて指定す る 必要があ り ます。地理用語の詳細については、座標に関するこの記事と、WGS84を含む測地系に関する別の記事を参照してください。
こ こ では方位 と は、 真北を基準に し た コ ン パ ス方位 と 同義です。
このクラスはQt 5.5からQ_GADGET 。C++やQMLから直接使うことができます。
メンバ型ドキュメント
enum QGeoCoordinate::CoordinateFormat
toString() で可能なフォーマットオプションを定義します。
定数 | 値 | 説明 |
---|---|---|
QGeoCoordinate::Degrees | 0 | 座標を10進数で表した文字列を返します。 |
QGeoCoordinate::DegreesWithHemisphere | 1 | 座標の半球を表すために 'N'、'S'、'E'、'W' を使用した、座標を 10 進度で表した文字列を返します。 |
QGeoCoordinate::DegreesMinutes | 2 | 座標を度-分形式で文字列で返します。 |
QGeoCoordinate::DegreesMinutesWithHemisphere | 3 | 座標の半球を表すのに 'N'、'S'、'E'、'W' を使用した、度-分形式の座標の文字列表現を返します。 |
QGeoCoordinate::DegreesMinutesSeconds | 4 | 座標を度分秒形式で文字列で返します。 |
QGeoCoordinate::DegreesMinutesSecondsWithHemisphere | 5 | 座標の半球を表すために 'N'、'S'、'E'、または 'W' を使用した、度-分-秒形式の座標の文字列表現を返します。 |
toString()も参照 。
enum QGeoCoordinate::CoordinateType
座標の型を定義します。
定数 | 値 | 説明 |
---|---|---|
QGeoCoordinate::InvalidCoordinate | 0 | 無効な座標。座標の緯度 ・ 経度値が無効な場合は無効。 |
QGeoCoordinate::Coordinate2D | 1 | 有効な緯度経度値を持つ座標。 |
QGeoCoordinate::Coordinate3D | 2 | 有効な緯度・経度値を持ち、高度値も持つ座標。 |
プロパティの説明
altitude : double
このプロパティは、海抜高度をメートル単位で保持する。
高度が設定されていない場合、このプロパティは未定義 (qQNaN()) です。
このプロパティは Qt 5.5 で導入されましたが、関連するアクセサ関数はこのクラスの最初のバージョンから存在しています。
アクセス関数:
double | altitude() const |
void | setAltitude(double altitude) |
[read-only]
isValid : const bool
このプロパティは、このジオ座標の有効性を保持します。
longitude およびlatitude プロパティが有効な値に設定されている場合、このジオ座標は有効です。
このプロパティは Qt 5.5 で導入されましたが、関連するアクセサ関数はこのクラスの最初のバージョンから存在しています。
アクセス関数:
bool | isValid() const |
latitude : double
このプロパティは、緯度を10進数で保持します。
緯度が設定されていない場合、このプロパティは未定義 (qQNaN()) です。正の緯度は北半球を示し、負の緯度は南半球を示す。緯度を設定する場合、新しい値はWGS84datumフォーマットでなければなりません。
有効であるためには、緯度は-90から90の間でなければなりません。
このプロパティはQt 5.5で導入されましたが、関連するアクセサ関数はこのクラスの最初のバージョンから存在しています。
アクセス関数
double | latitude() const |
void | setLatitude(double latitude) |
longitude : double
このプロパティは、経度を10進数で保持します。
経度が設定されていない場合、このプロパティは未定義 (qQNaN()) です。正の経度は東半球を示し、負の経度は西半球を示す。経度を設定する場合、新しい値はWGS84データム形式でなければなりません。
有効であるためには、経度は-180から180の間でなければなりません。
このプロパティは Qt 5.5 で導入されましたが、関連するアクセサ関数はこのクラスの最初のバージョンから存在しています。
アクセス関数
double | longitude() const |
void | setLongitude(double longitude) |
メンバ関数ドキュメント
QGeoCoordinate::QGeoCoordinate()
座標を構築します。この座標は、setLatitude() およびsetLongitude() が呼び出されるまでは無効です。
QGeoCoordinate::QGeoCoordinate(double latitude, double longitude)
与えられたlatitude およびlongitude を持つ座標を構築する。
緯度が -90 から 90 の間でない場合、または経度が -180 から 180 の間でない場合、いずれの値も設定されず、type() はQGeoCoordinate::InvalidCoordinate になります。
isValid()も参照 。
QGeoCoordinate::QGeoCoordinate(double latitude, double longitude, double altitude)
与えられたlatitude 、longitude およびaltitude を持つ座標を構築します。
緯度が -90 から 90 の間でない場合、または経度が -180 から 180 の間でない場合、いずれの値も設定されず、type() はQGeoCoordinate::InvalidCoordinate になります。
altitude は海抜メートルを指定することに注意。
isValid()も参照してください 。
QGeoCoordinate::QGeoCoordinate(const QGeoCoordinate &other)
other の内容から座標を構築します。
[noexcept, since 6.2]
QGeoCoordinate::QGeoCoordinate(QGeoCoordinate &&other)
other から移動して座標を構築する。
注: 移動元の QGeoCoordinate オブジェクトは、破棄または代入のみが可能です。デストラクタまたは代入演算子の 1 つ以外の関数を呼び出した場合の効果は未定義です。
この関数は Qt 6.2 で導入されました。
[noexcept]
QGeoCoordinate::~QGeoCoordinate()
座標オブジェクトを破棄します。
double QGeoCoordinate::altitude() const
高度(海抜メートル)を返します。
高度が設定されていない場合、戻り値は未定義です。
注: altitude プロパティのゲッター関数です。
setAltitude() およびtype()も参照 。
[invokable]
QGeoCoordinate QGeoCoordinate::atDistanceAndAzimuth(qreal distance, qreal azimuth, qreal distanceUp = 0.0) const
現在の座標からazimuth (または方位) を大円に沿ってdistance メートル進むと到達する座標を返す。この計算には、地球が球形であるという仮定があります。
高度にはdistanceUp が加算される。
この座標が無効な場合は無効な座標を返します。
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
[invokable]
qreal QGeoCoordinate::azimuthTo(const QGeoCoordinate &other) const
この座標からother で指定した座標までの方位(または方位角)を度単位で返します。高度は計算に使われません。
返される方位は、2 つの座標を結ぶ大円に沿った原点からother までの方位です。この計算には、地球が球形であるという仮定があります。
この座標の型またはother の型がQGeoCoordinate::InvalidCoordinate の場合は 0 を返す。
注: この関数はメタオブジェクトシステムを経由して、またQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
[invokable]
qreal QGeoCoordinate::distanceTo(const QGeoCoordinate &other) const
こ の座標か ら、other で指定 さ れた座標ま での距離 (メートル単位) を返 し ます。高度 は計算に使用されません。
この計算では、地球が球体であると仮定して、2つの座標間の大円距離を返します。
この座標の型またはother の型がQGeoCoordinate::InvalidCoordinate の場合は 0 を返す。
注意: この関数はメタオブジェクトシステムを経由して QML から呼び出すことができます。Q_INVOKABLE を参照してください。
bool QGeoCoordinate::isValid() const
longitude とlatitude が有効な場合はtrue
を返します。
注: isValid プロパティのゲッター関数です。
double QGeoCoordinate::latitude() const
緯度を10進数で返す。緯度が設定されていない場合、戻り値は未定義です。
正の緯度は北半球を示し、負の緯度は南半球を示す。
注: プロパティ latitude のゲッター関数。
setLatitude() およびtype()も参照してください 。
double QGeoCoordinate::longitude() const
緯度経度:経度を10進数で返します。経度が設定されていない場合、戻り値は未定義です。
経度が正の場合は東半球、負の場合は西半球を表します。
注: 経度プロパティのゲッター関数です。
setLongitude() およびtype()も参照してください 。
void QGeoCoordinate::setAltitude(double altitude)
高度(海抜メートル)をaltitude に設定する。
注釈: プロパティaltitude に対するセッター関数。
altitude()も参照して ください。
void QGeoCoordinate::setLatitude(double latitude)
緯度 (10進法) をlatitude に設定します。この値は WGS84 datum である必要があります。
有効であるためには、緯度は -90 から 90 の間でなければならない。
注意: プロパティlatitude に対するセッター関数です。
latitude()も参照してください 。
void QGeoCoordinate::setLongitude(double longitude)
経度(10 進数)をlongitude に設定します。この値は WGS84 基準でなければなりません。
有効であるためには、経度は -180 から 180 の間でなければならない。
注意: プロパティlongitude のセッター関数です。
longitude()も参照して ください。
[invokable]
QString QGeoCoordinate::toString(QGeoCoordinate::CoordinateFormat format = DegreesMinutesSecondsWithHemisphere) const
この座標を、指定されたformat の文字列として返します。
たとえば、この座標の緯度が -27.46758、経度が 153.027892、高度が 28.1 の場合、format に応じて返される文字列は以下のようになる:
format 値 | 返される文字列 |
---|---|
Degrees | -27.46758°, 153.02789°, 28.1m |
DegreesWithHemisphere | 南緯27.46758度、東経153.02789度、28.1m |
DegreesMinutes | -27° 28.054', 153° 1.673', 28.1m |
DegreesMinutesWithHemisphere | 南緯27度28.054分、東経153度1.673分、28.1m |
DegreesMinutesSeconds | -27° 28' 3.2", 153° 1' 40.4", 28.1m |
DegreesMinutesSecondsWithHemisphere | 27° 28' 3.2" S, 153° 1' 40.4" E, 28.1m |
高度フィールドは、高度が設定されていない場合は省略される。
座標が無効な場合は、空の文字列が返されます。
注: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
QGeoCoordinate::CoordinateType QGeoCoordinate::type() const
この座標の型を返します。
[noexcept, since 6.2]
QGeoCoordinate &QGeoCoordinate::operator=(QGeoCoordinate &&other)
Move : こ の座標にother を割 り 当て、 こ の座標への参照を返 し ます。
注意: 移動元のQGeoCoordinate オブジェクトは破棄または代入のみ可能です。デストラクタや代入演算子以外の関数を呼び出した場合の効果は未定義です。
この関数は Qt 6.2 で導入されました。
QGeoCoordinate &QGeoCoordinate::operator=(const QGeoCoordinate &other)
この座標にother を代入し、この座標への参照を返します。
関連する非メンバ
bool operator!=(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs)
lhs 座標の緯度・経度・高度がrhs 座標の緯度・経度・高度と一致しない場合はtrue
を返します。そうでない場合はfalse
を返します。
QDataStream &operator<<(QDataStream &stream, const QGeoCoordinate &coordinate)
指定されたstream に、指定されたcoordinate を書き込みます。
Qt データ型のシリアライズ」も参照してください 。
bool operator==(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs)
lhs 座標の緯度・経度・高度がrhs 座標の緯度・経度・高度と同じ場合はtrue
を返します。そうでない場合はfalse
を返します。
緯度が±90度の場合、経度は無視されます。
QDataStream &operator>>(QDataStream &stream, QGeoCoordinate &coordinate)
指定されたstream から、指定されたcoordinate に座標を読み込みます。
Qt データ型のシリアライズ」も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。