このページでは

GeoJsonData QML Type

GeoJSONドキュメントの表現、読み込み、保存を行うモデル。詳細...

Import Statement: import QtLocation 6.12
Since: QtLocation 6.7

プロパティ

方法

詳細な説明

GeoJsonData 型は、GeoJson 形式のドキュメントを読み書きします。GeoJsonData には、sourceUrl プロパティに設定された URL でモデルを開いたり保存したりする関数が用意されています。読み込まれたモデルは内部的にQVariant として表現され、model プロパティにバインドされます。デリゲートを使用して、ビュー内の項目を可視化します。

GeoJSON に関する詳細については、GeoJSONのウェブサイトをご覧ください。

GeoJSON オブジェクト

GeoJSON オブジェクトは、ジオメトリ、フィーチャ、またはジオメトリやフィーチャのコレクションを表す、有効な JSON オブジェクトです。

GeoJSON オブジェクトは、以下のいずれかの型でなければなりません。

  • Point
  • MultiPoint
  • LineString
  • MultiLineString
  • Polygon
  • MultiPolygon
  • GeometryCollection
  • Feature
  • FeatureCollection

型を設定するには、type メンバーをGeoJSON型にバインドします。coordinates メンバーは、GeoJSONの型に応じて、QGeoShape の型またはリストのいずれかになります。Feature 型には、追加のgeometry およびproperties メンバーがあります。

幾何型とその等価なQVariant 表現の一覧:

  • Point オブジェクトの場合、coordinates はQGeoCircle とペアになります。例:
    {
        "type": "Point",
        "coordinates": [11, 60]
    }

    このGeoJSONオブジェクトには、対応するQVariantMap 表現があります:

    {
        type: "Point"
        coordinates: QGeoCircle({11.000, 60.000}, -1)
    }
  • LineString オブジェクトの場合、coordinates はQGeoPath と対応します。例:
    {
        "type" : "LineString",
        "coordinates" : [
        [13.5, 43],
        [10.73, 59.92]
        ]
    }

    このGeoJSONオブジェクトには、対応するQVariantMap 表現があります:

    {
        type : "LineString"
        data : QGeoPath([{43.000, 13.500}, {59.920, 10.730}])
    }
  • Polygon オブジェクトの場合、coordinates メンバーはQGeoPolygon と対応します(穴がある場合があります)。ポリゴンは線形のリングであり、その最後の座標は最初の座標と同じであるため、リングが開いて閉じることになります。bbox メンバーはオプションのメンバーであり、領域の範囲を設定するためのもので、凹状の境界に役立ちます。 許容されるポリゴン座標の詳細については、GeoJSON仕様書の「Polygon」タイプに関する記述を参照してください。例:
    {
        "type": "Polygon",
        "coordinates": [
            [
                [17.13, 51.11],
                [30.54, 50.42],
                [26.70, 58.36],
                [17.13, 51.11]
            ]
        ],
        "bbox": [50, -50, 10, -10]
    }

    このGeoJSONオブジェクトには、対応するQVariantMap 形式の表現があります:

    {
        type : "Polygon"
        coordinates : QGeoPolygon([{51.110, 17.130}, {50.420,30.540}, {58.360, 26.700}, {51.110, 17.130}])
    }

MultiPoint 、MultiLineString 、およびMultiPolygon の各タイプでは、coordinates はQVariantList と対になります。list要素は、ジオメトリを含むQVariantMap です。

  • MultiPoint オブジェクトの場合、coordinates はPoint座標のリストとペアになります。例:
    {
        "type": "MultiPoint",
        "coordinates": [
            [11, 60],
            [5.5, 60.3],
            [5.7, 58.90]
        ]
    }

    このGeoJSONオブジェクトには、対応するQVariantMap 表現があります:

    {
        type : "MultiPoint"
        coordinates : [
            {
                type : "Point"
                coordinates : QGeoCircle({60.000, 11.000}, -1)
            },
            {
                type : "Point"
                coordinates : QGeoCircle({60.300, 5.500}, -1)
            },
            {
                type : "Point"
                coordinates : QGeoCircle({58.900, 5.700}, -1)
            }
            ]
    }
  • MultiLineString オブジェクトの場合、coordinates は LineString 座標のリストとペアになります。次の GeoJSON オブジェクトは、2 本の非平行な線を構成します:
    {
        "type" : "MultiLineString",
        "coordinates" : [
        [[13.5, 43], [10.73, 59.92]],
        [[9.15, 45], [-3.15, 58.90]]
        ]
    }

    このGeoJSONオブジェクトには、対応するQVariantMap 表現があります:

    {
        type : "MultiLineString"
        coordinates : [
            {
                type : "LineString"
                coordinates : QGeoPath([{45.000, 9.150}, {58.900, -3.150}])
            },
            {
                type : "LineString"
                coordinates : QGeoPath([{43.000, 13.500}, {59.920, 10.730}])
            }
        ]
    }
  • MultiPolygon 型の場合、coordinates はPolygon座標のリストとペアになります。このポリゴンは線形のリングであり、Polygon 型には、許容される形式に関する詳細情報が記載されています。以下のGeoJSONオブジェクトには、2つの三角形のリストが含まれています:
    {
        "type" : "MultiPolygon",
        "coordinates" : [
        [
            [[17.13, 51.11],
            [30.54, 50.42],
            [26.74, 58.36],
            [17.13, 51.11]
            ]],
        [
            [[19.84, 41.33],
            [30.45, 49.26],
            [17.07, 50.10],
            [19.84, 41.33]
            ]]
        ]
    }

    このGeoJSONオブジェクトには、対応するQVariantMap 表現があります:

    {
        type : "MultiPolygon"
        coordinates : [
            {
                type : "Polygon"
                coordinates : QGeoPolygon([{51.110, 17.130}, {50.420,30.540}, {58.360, 26.740}])
            },
            {
                type : "Polygon"
                coordinates : QGeoPolygon([{41.330, 19.840}, {49.260,30.450}, {50.100, 17.070}])
            }
            ]
    }

GeometryCollection 型は、他のジオメトリ型の構成要素です。geometries メンバーの値は、他のGeometryCollection型を含むさまざまな型のQVariantMapを含むQVariantList です。

たとえば、次の `GeometryCollection ` 型には、いくつかの他のジオメトリが含まれています:

{
    "type" : "GeometryCollection",
    "geometries" : [
        {
            "type" : "MultiPoint",
            "coordinates" : [
                [11,60], [5.5,60.3], [5.7,58.90]
            ]
        },
        {
            "type" : "MultiLineString",
            "coordinates": [
                [[13.5, 43], [10.73, 59.92]],
                [[9.15, 45], [-3.15, 58.90]]
            ]
        },
        {
            "type" : "MultiPolygon",
            "coordinates" : [
                [
                    [
                        [17.13, 51.11],
                        [30.54, 50.42],
                        [26.74, 58.36],
                        [17.13, 51.11]
                    ]
                ],
                [
                    [
                        [19.84, 41.33],
                        [30.45, 49.26],
                        [17.07, 50.10],
                        [19.84, 41.33]
                    ]
                ]
            ]
        }
    ]
}

この GeoJSON オブジェクトには、対応するQVariantMap 表現があります:

{
  type : "GeometryCollection"
  coordinates : [
    {
      type : "MultiPolygon"
      coordinates : [
        {
          type : "Polygon"
          coordinates : QGeoPolygon([{41.330, 19.840}, {49.260, 30.450}, {50.100, 17.070}])
        },
        {
          type : "Polygon"
          coordinates : QGeoPolygon([{51.110, 17.130}, {50.420, 30.540}, {58.360, 26.740}])
        }
      ]
    }
    {
      type : "MultiLineString"
      coordinates : [
        {
          type : "LineString"
          coordinates : QGeoPath([{45.000, 9.150}, {58.900, -3.150}])
        },
        {
          type : "LineString"
          coordinates : QGeoPath([{43.000, 13.500}, {59.920, 10.730}])
        }
      ]
    }
    {
      type : "MultiPoint"
      coordinates : [
        {
          type : Point
          coordinates : QGeoCircle({58.900, 5.700}, -1)
        },
        {
          type : Point
          coordinates : QGeoCircle({60.300, 5.500}, -1)
        },
        {
          type : Point
          coordinates : QGeoCircle({60.000, 11.000}, -1)
        }
      ]
    }
  ]
}

Feature 型には、追加のgeometry およびproperties メンバーが含まれています。Featureオブジェクトを他の幾何学的オブジェクトと区別する唯一の方法は、QVariantMap オブジェクト内にproperties ノードが存在するかどうかを確認することです。

たとえば、次のFeature には、geometryおよびpropertiesメンバーがあります:

{
    "type": "Feature",
    "id": "Poly",
    "properties": {
        "name": "Poly",
        "text": "This is a Feature with a Polygon",
        "color": "limegreen"
    },
    "geometry": {
        "type": "Polygon",
        "coordinates": [
            [
                [17.13, 51.11],
                [30.54, 50.42],
                [26.70, 58.36],
                [17.13, 51.11]
            ],
            [
                [23.46, 54.36],
                [20.52, 51.91],
                [28.25, 51.50],
                [26.80, 54.36],
                [23.46, 54.36]
            ]
        ]
    }
}

このGeoJSONオブジェクトには、対応するQVariantMap 表現があります:

{
  type : "Polygon"
  data : QGeoPolygon([{51.110, 17.130}, {50.420,30.540}, {58.360, 26.700}, {51.110, 17.130}])
  properties : {text : "This is a Feature with a Polygon"}
}

このFeatureCollection は、Featureオブジェクトの構成体です。features メンバーは、他のFeatureオブジェクトを含むQVariantList オブジェクトにバインドされます。

たとえば、次のFeatureCollection には、いくつかのFeatureとジオメトリが含まれています:

{
    "type" : "FeatureCollection",
    "properties" : {
        "color" : "crimson"
    },
    "features" : [
        {
            "type" : "Feature",
            "id" : "Poly",
            "properties" : {
                "text" : "This is a Feature with a Polygon"
            },
            "geometry" : {
            "type" : "Polygon",
            "coordinates" : [
                [
                    [17.13, 51.11],
                    [30.54, 50.42],
                    [26.70, 58.36],
                    [17.13, 51.11]
                ],
                [
                    [23.46, 54.36],
                    [20.52, 51.91],
                    [28.25, 51.50],
                    [26.80, 54.36],
                    [23.46, 54.36]
                ]
            ]
        }
    },
    {
        "type" : "Feature",
        "id" : "MultiLine",
        "properties" : {
            "text" : "This is a Feature with a MultiLineString",
            "color" : "deepskyblue"
        },
        "geometry" : {
            "type" : "MultiLineString",
            "coordinates" : [
                [[13.5, 43], [10.73, 59.92]],
                [[9.15, 45], [-3.15, 58.90]]
            ]
        }
    }
    ]
}

このGeoJSONオブジェクトには、対応するQVariantMap 形式の表現があります:

{
    type: "FeatureCollection"
    data: [{
            type: "MultiLineString"
            data: [{
                type: "LineString"
                data: QGeoPath( [{45.000, 9.150}, {58.900, -3.150}] )
            } {
                type: "LineString"
                data: QGeoPath( [{43.000, 13.500}, {59.920, 10.730}] )
            }]
            properties: { text: "This is a Feature with a MultiLineString" }
        },
        {
            type: "Polygon"
            data: QGeoPolygon(  {51.110, 17.130},
                                {50.420, 30.540},
                                {58.360, 26.700},
                                {51.110, 17.130}
                            )
            properties: { text: "This is a Feature with a Polygon" }
        }
    ]
}

GeoJSONの例

「GeoJson Viewer」の例では、GeoJsonData QML 型を使用して座標を読み込み、地図上に表示する方法を示しています。

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

model : QVariant [since 6.7]

GeoJSONドキュメントのQVariant 表現。QMLデリゲートは、その内容をビューに表示することができます。

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

sourceUrl : url [since 6.7]

GeoJSONドキュメントのURL。このプロパティを設定すると、ドキュメントが読み込まれ、オブジェクトがmodel メンバーにバインドされます。

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

メソッドのドキュメント

bool addItem(Item item)

item をmodel オブジェクトに追加します。

追加に成功した場合は `true ` を返し、失敗した場合は `false ` を返します。

void clear()

model にバインドされているすべてのアイテムを削除します。

bool open()

sourceUrl にあるファイルの内容を読み込みます。

ファイルのオープンに成功した場合はtrue を返し、失敗した場合はfalse を返します。

bool openUrl(Url url)

url にある GeoJson ドキュメントを読み込み、model にバインドします。ファイルの開く操作が成功した場合、sourceUrl プロパティはurl に設定されます。

ファイルのオープンに成功した場合はtrue を返し、失敗した場合はfalse を返します。

bool save()

モデルをsourceUrl に保存します。

保存に成功した場合はtrue を返し、失敗した場合はfalse を返します。

bool saveAs(Url url)

model をurl に保存します。保存に成功した場合は、sourceUrl プロパティがurl に設定されます。

保存に成功した場合は `true ` を返し、そうでない場合は `false ` を返します。

void setModelToMapContents(MapView mapItemView)

mapItemView のすべてのマップ項目を、GeoJsonData オブジェクトのmodel に追加します。model から以前に保存されていたマップ項目を削除します。

設定に成功した場合はtrue を返し、それ以外の場合はfalse を返します。

addItemも参照してください 。

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