[GeoJSON] Re: CRS in geojson
Howard Butler <howard@hobu.co> Tue, 02 September 2025 20:18 UTC
Return-Path: <howard@hobu.co>
X-Original-To: geojson@mail2.ietf.org
Delivered-To: geojson@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 9D3C15C4827C for <geojson@mail2.ietf.org>; Tue, 2 Sep 2025 13:18:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=hobu-co.20230601.gappssmtp.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XP1KEMBQrp_C for <geojson@mail2.ietf.org>; Tue, 2 Sep 2025 13:18:49 -0700 (PDT)
Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id A7D0E5C48272 for <geojson@ietf.org>; Tue, 2 Sep 2025 13:18:49 -0700 (PDT)
Received: by mail-io1-xd2a.google.com with SMTP id ca18e2360f4ac-887486305edso62128339f.3 for <geojson@ietf.org>; Tue, 02 Sep 2025 13:18:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hobu-co.20230601.gappssmtp.com; s=20230601; t=1756844329; x=1757449129; darn=ietf.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=0Hh1ot7JpjyFfGSfHgKvyyDlIhlKL17eQh/3GnREEWI=; b=UvYYBZPnS25sEyA4VFYkEnEFpn0rwYUN6eAE/vDtGmVO6s9KPt91NU0m98wIdBOn/0 razZp6KKYQKjgDpP5dKdbOZ+S8lKnY4U51d+zlbjYp0UC5p2gQocH82cjQNAQnp6sG8f +j+PktDRoLwYHBGGpzPxEJNn9s8R/4NBSBGD7Yj/KnJfcn59ZfDPbkzdAtv1IJkp6jDi PNAYfNR2h8pwMJkBqLbPOb20RVc8vEMdxOOHqeZGEY6T0ZwL6ohe+UPw4CtWdLNj2QRB pZ3zKRU1mE6+D3EZkhvr72ZkCBctPtVTXoc2bZUX5xmg2E9nr3NzVihL7mC2kuLNuuKI 3OwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756844329; x=1757449129; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0Hh1ot7JpjyFfGSfHgKvyyDlIhlKL17eQh/3GnREEWI=; b=gycV1vr2dlCczz9SUcKTmtYxc+Um2Y3ve/abEnjtmCSiJ04UiGQChpBOBlYY6umVtQ diko6MCMxPYWZ/Fr2Hk3Qz09wHII4psqynJRUMs99/AqJQLgKBRWvCV2iZnpOxNpvx4e LxyRWu10asSahmeL4Z3omyAlglvCBYNrk5q3LFvV9jVHjfpVelAuFMe8XlTyh+BFvNtY 7kdr/COX7sAA+ome4BXD987W0QcrNQs27L0dOqvlOiVcn47RMJGZUK/5MXsFCpOzonjX +FsyhMSdtJ12H3vlKmb2J3nBJ9hs2E1FrV0ICkrTBDRheODT/2UgYL6lDOXFH1FMKsnz bQxw==
X-Gm-Message-State: AOJu0YxL/QQKk0P+hCL/8iiwwUg9NfaLpWM039fFGcl82zPIjoDl0TRu OJJmRQNhIaVxLs0WDHuRzKhoQGNYHpbHjAe81Lq03lZBg9cp+KtDMXMGxWIA80PJgvw=
X-Gm-Gg: ASbGncuHplsS0KUQKlUaqxnSDEDCjPLBc9VNdeEF7XsRe4cJOFNkMjYrSpVQZjqyF0R FXI0p/cKdsgHSBqYaKijKre7jai82TtbnHnP61zeOIYA7crM27ytcl9DsDTA7E47NTaXzOar7H1 SB15jAT1zIZymOUXG0x5WsIiOEFlXT80yssk515I+AK4zvOL8Yucm/UlhrDJVaOvcJCmpiUMiXq OqG8jp4vNQGqJW/4IifC0RwvQ70MA2pmNbJ3XQLO3d+gqo1WCPXz36CfEypyGqlJE293eX3u2MW AUt7kWMvpEZvJUVETdXXIh6z1YSJKQToSRpbYW7EswMniYYt3fUZJkWfB4KKrkEcaLBndV1m8f8 kSXGxXByNoDw+MQQTASwWt22D7Pp3gMb9
X-Google-Smtp-Source: AGHT+IEaXmOwTr4QFVWjfopAQDQuTeL27x0LQoe1n3SfvtcLTQQS93ZBc2zYTKwDust1BvucMXmv+w==
X-Received: by 2002:a05:6e02:250a:b0:3f0:c326:538a with SMTP id e9e14a558f8ab-3f4027b87ffmr209695365ab.27.1756844328716; Tue, 02 Sep 2025 13:18:48 -0700 (PDT)
Received: from smtpclient.apple ([98.159.127.68]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-50d8f0a4965sm3344527173.13.2025.09.02.13.18.47 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Sep 2025 13:18:48 -0700 (PDT)
From: Howard Butler <howard@hobu.co>
Message-Id: <AA2D50AC-FF43-49E6-A540-47FB71580136@hobu.co>
Content-Type: multipart/alternative; boundary="Apple-Mail=_898D5999-56CE-4C74-86AB-057ACB4B95CB"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\))
Date: Tue, 02 Sep 2025 15:18:37 -0500
In-Reply-To: <CAJcQiLe6eW2uqaMyr6Jqnzjcb70uiLscqkUjm1W2iCLH-ZiwtA@mail.gmail.com>
To: James J Graham <James.Graham@humboldt.edu>
References: <CACY6LXZ68aoDQCwiZ4qTgj-JHKbLd5x5o+DL6o_uVFJyDTrcXw@mail.gmail.com> <CAJcQiLe6eW2uqaMyr6Jqnzjcb70uiLscqkUjm1W2iCLH-ZiwtA@mail.gmail.com>
X-Mailer: Apple Mail (2.3826.700.81)
Message-ID-Hash: J5X2TJQZFPPCGHDXAEIBTT7OVUMCYKCG
X-Message-ID-Hash: J5X2TJQZFPPCGHDXAEIBTT7OVUMCYKCG
X-MailFrom: howard@hobu.co
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-geojson.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: geojson@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [GeoJSON] Re: CRS in geojson
List-Id: IETF GeoJSON WG <geojson.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/geojson/Sjx75ItUfmK4RD7dvYLZOyyUIdg>
List-Archive: <https://mailarchive.ietf.org/arch/browse/geojson>
List-Help: <mailto:geojson-request@ietf.org?subject=help>
List-Owner: <mailto:geojson-owner@ietf.org>
List-Post: <mailto:geojson@ietf.org>
List-Subscribe: <mailto:geojson-join@ietf.org>
List-Unsubscribe: <mailto:geojson-leave@ietf.org>
Jim, I think the story of GeoJSON going the way of KML and defining only a single coordinate system that guarantees CRS interoperability is due to a few circumstances of the time when GeoJSON was created. After nearly 20 years of GeoJSON playing out in the marketplace of implementations, it is pretty clear GeoJSON made the correct choice. In my opinion, the most consequential circumstance was (and still is) the deficiency of Well Known Text for CRS. Well Known Text [1] for CRS is not JSON-friendly, not conveniently parseable or constructible with web-oriented open source tools, and requires a database of parameter definitions to functionally interpret. Requiring accurate production and consumption of WKT for CRS definitions places a huge burden on implementations. WKT is still difficult to parse, validate, and interpret which creates impedance that pushes against its requirement in data types where there's clear a Pareto of common definitions. For the web in 2006, that was WGS84. Maybe it isn't WGS84 in 2025, but I still don't think it is supporting *every* possible CRS definition with a standard that's so easy to foot-gun yourself with. One thought for GeoJSON at the time was to jump to URLs as identifiers as Carl has pasted below, which would be the web way to go about it. Dereference'able URLs for GeoJSON was the impetus for Chris Schmidt and myself to start spatialreference.org <http://spatialreference.org/> because nothing like it existed at the time. The problem with URLs is the infrastructure at the end of it has to stay up forever and the definitions at that URL *can never change*. If you've tried to track the changelog of EPSG definitions, you'll see this is impossible. If you've used some of the older URL structures from epsg.org <http://epsg.org/> or ogc.org <http://ogc.org/>, you'll know that infrastructure like that inevitably rots, and the precise definition of your data along with it. Offline use of GeoJSON is of course also quite common, and its ability to morph between acting as a document, a file, and a response message has been a key reason people choose it. That ability is also at odds with always needing to be online to fetch an active CRS definition. If PROJJSON [2] had existed when GeoJSON was created, I suspect the GeoJSON authors would have been more amenable to allowing alternative CRS definitions using it. PROJJSON overcomes WKT's frustrating syntax and lack of syntax validators and makes it easier for developers to pluck the parameters and IDs they need, but it still imposes the complexity of WKT's data and parameter models. If you've been tracking the CRS Working Group in OGC, you'll notice that group can't decide after nearly four years if PROJJSON is complete or complex enough to move forward with as a JSON-based CRS definition. There's reasons for the indecision, but the consequence is the continuing void. All of this long winded text to say: If the community wants flexibly defined coordinate systems in its geospatial wire formats, it should invest in reducing the burden of production and consumption of CRS definitions on software implementations. IMO, I don't think the story has substantively improved on that topic since the first GeoJSON specification was written in 2006. Howard [1] https://www.ogc.org/standards/wkt-crs/ [2] https://proj.org/en/stable/specifications/projjson.html > On Sep 2, 2025, at 2:06 PM, Carl Reed <carl.n.reed@gmail.com> wrote: > > Jim - > > Thanks for the comment! Waaaay back when GeoJSON was initially submitted to the IETF (and I believe earlier!), there was considerable discussion WRT CRS. There were basically two camps. One was focused on keeping GeoJSON as simple as possible for non-geo developers. Hence one CRS allowed. The other camp recommended having a default CRS (CRS84 - long/lat) but also including a property that would allow expressing a CRS other than CRS 84. > > I was in the latter camp :-) At the time, one of our arguments was that a number of nations have legally mandated CRS that must be supported. China for example. There were also many discussions related to axis order. That is why GeoJSON mandates the use of CRS 84 (https://spatialreference.org/ref/ogc/CRS84/) as defined in the OGC CRS registry. CRS 84, while based on the WGS 84 ellipsoid etc., specifies the axis order as longitude, latitude. The EPSG 4326 entry specifies axis order lat/long for WGS 84. (https://epsg.org/crs_4326/WGS-84.html?sessionkey=qx77krwm3v) > > Funny that I still have many of the emails related to the 2016 discussion on this topic! There were plenty of emails in 2006 about the topic too ;) > On Mon, Sep 1, 2025 at 5:02 PM James J Graham <James.Graham@humboldt.edu <mailto:James.Graham@humboldt.edu>> wrote: >> I am writing to raise a concern that it appears that including any Coordinate Reference System (CRS) in a geojson file other than WGS84 has been abandoned (see https://datatracker.ietf.org/doc/html/rfc7946#section-4) GeoJSON is now becoming a better supported and more widely used format for geospatial data. Limiting it to a single CRS will limit it's use significantly and thus limit the range of geospatial applications that can take advantage of the simplicity and speed of processing of GeoJSON vs. other standards. I am asking that this decision be reexamined and a general format for CRSes be added back in to the standard.
- [GeoJSON] CRS in geojson James J Graham
- [GeoJSON] Re: CRS in geojson Tim Schaub
- [GeoJSON] Re: CRS in geojson Sean Gillies
- [GeoJSON] Re: CRS in geojson James J Graham
- [GeoJSON] Re: CRS in geojson Martin J. Dürst
- [GeoJSON] Re: CRS in geojson James J Graham
- [GeoJSON] Re: CRS in geojson Carl Reed
- [GeoJSON] Re: CRS in geojson Howard Butler
- [GeoJSON] Re: CRS in geojson James J Graham
- [GeoJSON] Re: CRS in geojson Carl Reed
- [GeoJSON] Re: CRS in geojson James J Graham
- [GeoJSON] Re: CRS in geojson Carl Reed
- [GeoJSON] Re: CRS in geojson James J Graham
- [GeoJSON] Re: CRS in geojson Even Rouault