このページでは

QGeoCoordinate Class

QGeoCoordinate クラスは、地球の表面上の地理的位置を定義します。詳細...

ヘッダー: #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)
(since 6.2) void swap(QGeoCoordinate &other)
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を含む測地系に関する別の記事をご覧ください。

この文脈における方位角は、真北を基準とした羅針盤の方位角に相当します。

このクラスは、QML では `geoCoordinate` として利用可能です。

メンバ型のドキュメント

enum QGeoCoordinate::CoordinateFormat

toString() で利用可能な書式設定オプションを定義します。

定数値説明
QGeoCoordinate::Degrees0座標を 10 進度の形式で文字列として返します。
QGeoCoordinate::DegreesWithHemisphere1座標を 10 進度の形式で文字列として返します。座標の半球を示すために「N」、「S」、「E」、または「W」を使用します。
QGeoCoordinate::DegreesMinutes2座標を度分形式で表した文字列を返します。
QGeoCoordinate::DegreesMinutesWithHemisphere3座標を度分形式で文字列として返し、座標の半球を示すために「N」、「S」、「E」、または「W」を使用します。
QGeoCoordinate::DegreesMinutesSeconds4座標を度分秒形式で文字列として返します。
QGeoCoordinate::DegreesMinutesSecondsWithHemisphere5座標の半球を示すために「N」、「S」、「E」、または「W」を使用し、度分秒形式で座標を表す文字列を返します。

toString()も参照してください 。

enum QGeoCoordinate::CoordinateType

座標の型を定義します。

定数値説明
QGeoCoordinate::InvalidCoordinate0無効な座標。緯度または経度の値が無効な場合、その座標は無効となります。
QGeoCoordinate::Coordinate2D1緯度と経度の値が有効な座標。
QGeoCoordinate::Coordinate3D2緯度と経度の値が有効であり、かつ高度の値も有効な座標。

プロパティのドキュメント

altitude : double

このプロパティには、海抜(メートル単位)が格納されます。

標高が設定されていない場合、このプロパティは未定義(qQNaN())となります。

このプロパティは Qt 5.5 で導入されましたが、関連するアクセサ関数はこのクラスの最初のバージョンから存在しています。

アクセス関数:

double altitude() const
void setAltitude(double altitude)

[read-only] isValid : bool

このプロパティは、この地理座標の有効性を保持します。

longitude およびlatitude プロパティが有効な値に設定されている場合、この地理座標は有効となります。

このプロパティは Qt 5.5 で導入されましたが、関連するアクセサ関数はこのクラスの最初のバージョンから存在しています。

アクセス関数:

bool isValid() const

latitude : double

このプロパティには、小数点付きの度単位の緯度が格納されます。

緯度が設定されていない場合、このプロパティは未定義(qQNaN()))となります。正の緯度は北半球、負の緯度は南半球を示します。緯度を設定する際は、新しい値をWGS84座標系形式で指定する必要があります。

有効な緯度とするには、-90 から 90 の範囲(両端を含む)でなければなりません。

このプロパティは Qt 5.5 で導入されましたが、関連するアクセサ関数はこのクラスの最初のバージョンから存在しています。

アクセス関数:

double latitude() const
void setLatitude(double latitude)

longitude : double

このプロパティには、小数点付きの度単位の経度が格納されます。

経度が設定されていない場合、このプロパティは未定義(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 の内容から座標を生成します。

[constexpr noexcept default, since 6.2] QGeoCoordinate::QGeoCoordinate(QGeoCoordinate &&other)

other から移動して座標を生成します。

注: 移動元の QGeoCoordinateオブジェクトは 、破棄するか、代入するかのいずれかしかできません。デストラクタや代入演算子以外の関数を呼び出した場合、その挙動は未定義となります。

この関数は 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 で指定された座標までの方位角(またはベアリング)を度単位で返します。高度は計算に使用されません。

返される方位角は、原点からother までの、2つの座標を結ぶ大円に沿った方位角です。この計算では、地球が球体であるという仮定に基づいています。

この座標の型または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進度の値で返します。経度が設定されていない場合、戻り値は未定義となります。

正の経度は東半球、負の経度は西半球を示します。

注: プロパティ `longitude`のゲッター 関数です。

関連項目: setLongitude() およびtype()。

void QGeoCoordinate::setAltitude(double altitude)

高度(海抜メートル)をaltitude に設定します。

注: プロパティ `altitude`のセッター 関数です。

altitude()も参照してください 。

void QGeoCoordinate::setLatitude(double latitude)

緯度(小数点表記の度)をlatitude に設定します。値はWGS84座標系で指定する必要があります。

有効な値とするには、緯度は-90から90までの範囲(両端を含む)でなければなりません。

注: プロパティ `latitude`のセッター 関数です。

latitude()も参照してください 。

void QGeoCoordinate::setLongitude(double longitude)

経度(小数度)をlongitude に設定します。値はWGS84座標系で指定する必要があります。

有効な値とするには、経度は -180 から 180 の範囲内(両端を含む)でなければなりません。

注: プロパティ `longitude`のセッター 関数です。

longitude()も参照してください 。

[noexcept, since 6.2] void QGeoCoordinate::swap(QGeoCoordinate &other)

この座標を `other` と入れ替えます。この操作は非常に高速で、失敗することはありません。

この関数は Qt 6.2 で導入されました。

[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秒、東経153度1分40.4秒、28.1m

高度が設定されていない場合、高度フィールドは省略されます。

座標が無効な場合、空の文字列が返されます。

注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

QGeoCoordinate::CoordinateType QGeoCoordinate::type() const

この座標の型を返します。

[noexcept, since 6.2] QGeoCoordinate &QGeoCoordinate::operator=(QGeoCoordinate &&other)

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)

指定されたcoordinate を、指定されたstream に書き込みます。

「Qtデータ型のシリアライズ」も参照してください 。

bool operator==(const QGeoCoordinate &lhs, const QGeoCoordinate &rhs)

lhs 座標の緯度、経度、高度が、rhs 座標のそれと同一である場合、true を返します。それ以外の場合は、false を返します。

緯度が±90度の場合、経度は無視されます。

QDataStream &operator>>(QDataStream &stream, QGeoCoordinate &coordinate)

指定されたstream から座標を読み取り、指定されたcoordinate に格納します。

「Qt データ型のシリアライズ」も参照してください 。

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