geojson 中的坐标顺序

问题描述 投票:0回答:2

我正在通过 GitHub 以 geojson 格式测试数据渲染,因为我想将其用于 INSPIRE 数据。 INSPIRE 数据采用 GML 3.2.1 格式。我已经从 http://services.cuzk.cz/gml/inspire/cp/epsg-4258/(位于 ETRS 中)下载了一个数据集。

我需要从中获取json文件,所以我在Quantum GIS(版本1.9)中打开GML文件并将其保存为geojson文件(CRS = EPSG :: 4326),然后上传到我的GitHub。 geojson中的坐标顺序是(东向,北向),但是从QGIS保存文件后它是(北向,东向)。我的数据来自捷克共和国,但它是在也门渲染的。 有人对这个问题有经验吗? 有谁知道如何在 geojson 文件中切换坐标(或轴)的顺序?

与 json 相比,我对基于 xml 的数据格式有更多的经验,因此我希望这不是一个愚蠢的问题。

xml geojson qgis gml-geographic-markup-lan
2个回答
59
投票

对于那些正在寻找标题中问题答案的人:

坐标顺序是经度和纬度,或东距和北距。

来源:

3.1.1. 位置

位置是基本的几何构造。 这 Geometry 对象的“坐标”成员由以下任一组成:

在点几何体的情况下,有一个位置,

o LineString 或多点情况下的位置数组 几何,

o LineString 或线性环数组(参见第 3.1.6 节) Polygon 或 MultiLineString 几何体的坐标, 或

o 在 MultiPolygon 的情况下为 Polygon 坐标数组 几何。

位置是一个数字数组。 必须有两个或更多
元素。 前两个元素是经度和纬度,或者
东移和北移
,完全按照该顺序并使用小数
数字。 海拔或海拔可以作为可选的第三个包含在内
元素。

来自 GeoJSON 规范


0
投票

可以使用python切换坐标顺序:

import json
import sys

geodata = json.loads(open(sys.argv[1]).read())
for obj in geodata:
    if "coordinates" in obj:
        # reorder from northing, easting to easting, northing
        northing = obj["coordinates"][0]
        easting = obj["coordinates"][1]
        obj["coordinates"] = [ easting, northing ]

print json.dumps(geodata)

像这样运行:

python reorder_geojson.py geodata_ne.json > geodata_en.json
© www.soinside.com 2019 - 2024. All rights reserved.