Sonnet

How to open a GeoJSON file on Android

Someone sent you a .geojson file, or a data portal gave you one instead of a map. It is a JSON file underneath, so your phone can read it — but reading the data and seeing it drawn are different jobs.

Short answer

A .geojson file is plain JSON with a fixed structure, so a JSON viewer opens it: Sonnet shows it as a foldable tree, offline, which is what you want for reading coordinates, properties and feature counts. It will not draw a map. For that, view the file from a GitHub repository in your browser, or use a GeoJSON map viewer.

Get Sonnet free Reads the file offline, nothing uploaded.

Is a .geojson file the same as a .json file?

The contents are ordinary JSON — the same syntax covered in what is a JSON file. GeoJSON is a set of rules about what that JSON must contain, standardised as RFC 7946, and its media type is application/geo+json. The extension is a convention, not a different file type: GDAL, the format library desktop GIS tools lean on, identifies this format “from the file extension .geojson or .json”, and treats both the same.

That matters in one practical way. Some Android apps and file pickers decide what they will offer you from the extension, and .geojson is rarer than .json. If a file manager won’t hand your file to anything, copy it and rename the copy to end in .json. The bytes are identical; only the label changed.

What’s inside a GeoJSON file

Every object in the file has a type member, and the specification allows exactly nine case-sensitive values: Feature, FeatureCollection, and the seven geometry types below. Most files you are sent are one FeatureCollection with a features array inside it.

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "id": 417,
      "properties": { "name": "Depot gate", "open": true },
      "geometry": {
        "type": "Point",
        "coordinates": [2.352200, 48.856600]
      }
    }
  ]
}

A Feature always carries a geometry and a properties member. properties is where the human-readable part lives — names, codes, dates, anything the publisher chose — and it is allowed to be any JSON object or null. geometry may also be null, which the standard calls an unlocated feature. An id is optional, and when present it is a string or a number.

Geometry typeWhat coordinates holds
PointA single position: one [longitude, latitude] pair
MultiPointAn array of positions
LineStringAn array of two or more positions — a route, a river, a track
MultiLineStringAn array of LineString coordinate arrays
PolygonAn array of linear rings — each a closed LineString of four or more positions whose first and last are identical. The first ring is the outline, the rest are holes
MultiPolygonAn array of Polygon coordinate arrays — a country with islands
GeometryCollectionNo coordinates at all: a geometries array of the types above

Member definitions quoted from the GeoJSON specification’s own source text (the geojson/draft-geojson working-group repository, which is what RFC 7946 was published from), read 2 November 2026.

Read the data on your phone

This is the part a JSON viewer is good at. Open the file in Sonnet and you get the collapsible tree, entirely offline — nothing is uploaded, and there are no ads.

  1. Fold features first. The number of children is how many things the file describes, which is often the one fact you wanted.
  2. Expand one feature and read its properties. Publishers rarely document their field names, so the quickest way to learn the schema is to read one record.
  3. Leave coordinates folded unless you need a number out of it. On a boundary file it is thousands of pairs deep and scrolling it tells you nothing.
  4. Tap a value to edit it if you need to correct a name or a number, then save. If you want to reformat the file first, that works the same way.

Sonnet Pro, a one-time unlock, adds search, which is the difference between finding one road name in a council dataset and scrolling for it.

How to see a GeoJSON file on a map

Sonnet does not draw maps, and no JSON viewer does. Three routes that do:

GitHub’s rendering rules are from its own documentation; the viewer app’s details are from its GitHub README; the QGIS steps are from the QGIS user manual. All read 2 November 2026.

Why your points land in the wrong place

Almost every GeoJSON mistake is one of these three, and all three are visible in the tree before you ever load a map.

Axis order matters in one more place. A bbox member, if present, holds twice as many numbers as the data has dimensions, in the geometries’ axis order: west, south, east, north for ordinary two-dimensional data.

When the file won’t open at all

How big do GeoJSON files get?

Coordinates dominate, so size follows the shape of the data rather than the number of things in it. Measured here, writing both files minified at six decimal places:

At that density roughly 88,000 positions fill 2 MB and 880,000 fill 20 MB. Two things inflate it: pretty-printing, which tripled the track file at two-space indentation, and precision — GDAL writes 15 decimal digits per coordinate for 2008-style GeoJSON and 7 for RFC 7946, and a file at 15 digits is far larger than the same shapes at six.

Sonnet shows the full tree for JSON up to about 2 MB and opens files up to 20 MB as read-only formatted text, with the one-time Sonnet Pro unlock raising that to a 30 MB tree and 50 MB files. A hand-drawn route or a few hundred points sits comfortably inside the free tree. A national boundary dataset does not, and belongs in how to open a large JSON file on Android.

Read the data behind the map

Sonnet opens JSON files as a collapsible tree, entirely offline, so the file never leaves your phone. No ads, no account. Free on Google Play.

Get it on Google Play