Shapefile viewer
Open a zipped shapefile, or its .shp, .dbf and .prj picked together, and see it on a map with its attribute table and layer details. Free, no install, and no account needed.
A free shapefile viewer that runs in your browser
The Spatibase shapefile viewer opens an ESRI shapefile (a .zip, or the loose .shp, .dbf, .prj and .cpg files) in your web browser and shows it on a map with its full attribute table. For each layer it names the shape type, feature count, coordinate system, text encoding and fields, and it saves the data as GeoJSON, CSV or KML in WGS 84. It’s free with no install or account, opens up to 50 MB, and reads the file on your own device: nothing is uploaded.
Who it’s for, and what it isn’t:
- Someone sent you a shapefile. See what’s in it without QGIS or ArcGIS, on a Mac, a Chromebook or a phone.
- A viewer, not an editor. It opens, describes and exports the data. To change shapes or values, use QGIS (free) or mapshaper.
- Size. Up to 50 MB for all the parts together.
How to open a shapefile online
No install and no account: everything below happens inside this page.
- Find the files: a shapefile is several files sharing one name (parcels.shp, parcels.dbf, parcels.prj), usually bundled in one .zip.
- Drop the .zip on the box above, or press Choose a file and select all the parts at once. No shapefile at hand? Open the sample: three Barcelona layers in ETRS89 / UTM zone 31N.
- Look at the map. Shapes where you expect them mean the coordinate system was read correctly; the notes flag a missing .prj or .dbf.
- Open About this file for each layer’s details, then scroll the attribute table and click a row to find that feature.
- Save it as GeoJSON, CSV or KML. To keep working on it with your team, press Save to Spatibase (free) to put it in a free Spatibase project.
What “About this file” tells you about each layer
The panel answers the questions you’d otherwise open QGIS for, one layer at a time:
- Shape type.
Point,PolyLine(lines),PolygonorMultiPoint, with aZwhen the shapes store height. One type per layer, so places and roads arrive as two layers. - Feature count. How many records the layer has.
- Coordinate system. The name in the
.prj, such asETRS 1989 UTM Zone 31N, and whether it was converted to WGS 84 for the map. - Text encoding. Such as
UTF-8orwindows-1252, and whether it came from the.cpgor was detected. - Fields. Each column’s name, type (text, whole number, number, date or yes/no) and size. A text field of size 80 holds 80 bytes; anything longer was cut when the file was made.
The attribute table sits under the map. One row per feature, a column per field. Click a row to find the feature, or a shape to read its values. It lists the first 500 rows; the downloads include every feature.
Several layers in one zip? Each gets its own details, and every feature carries its layer’s name: a Layer column in the table, folder in the downloads (unless the data has a folder field already).
What files make up a shapefile?
Three to five files with one name. The .shp holds only geometry; names, values and the location on Earth live in its sibling files.
What each part adds, and what you lose without it:
- `.shp`, the shapes. The coordinates of every point, line or polygon. Required.
- `.dbf`, the attributes. The table of names and values, matched to the shapes by their order. Without it you get bare shapes.
- `.prj`, the coordinate system. One line of text naming the grid the coordinates are in. Without it, coordinates in metres can’t be placed.
- `.cpg`, the encoding. A single word such as
UTF-8or1252. Without it, accented names can come out garbled, so the viewer works it out from the.dbf. - `.shx` and the rest. Indexes (
.shx,.sbn,.qix) and metadata (.shp.xml). The viewer doesn’t need them.
The .prj puts the data in the right place. Official shapefiles mostly store metres in a national or UTM grid, not degrees. The viewer reads the .prj and converts every coordinate to WGS 84 for the map, and old datums such as ED50 or NAD27 get the shift that ESRI .prj files omit.
The attribute table is a dBASE file, a 1980s format, and its limits show up in almost every shapefile:
- Field names of 10 characters.
population_2020arrives aspopulation; the program that wrote the file cut it. - Text up to 254 bytes. Longer values were cut, often mid-word. Accented letters take two bytes or more.
- Dates without a time. A date field holds a day, such as
2024-05-17. - No true empty value. Some programs write
0for a missing number, so a 0 may mean unknown.
No colours inside. Styling lives in separate .qml or .lyrx files, so the viewer draws each layer in a default style.
Inspect a shapefile with ogrinfo or Python
GDAL’s ogrinfo prints the same layer details as the panel above, without a map: geometry type, feature count, extent, coordinate system and field types. GDAL comes with QGIS (or brew install gdal, apt install gdal-bin).
# a summary of every layer: geometry type, feature count, extent, CRS and fields
ogrinfo -so -al parcels.shp
# a zipped shapefile works without unzipping it
ogrinfo -so -al /vsizip/parcels.zip
# every record's attributes, without the coordinates
ogrinfo -geom=NO /vsizip/parcels.zip parcelsIn Python, gdf = gpd.read_file("parcels.zip") with geopandas, then gdf.crs names the coordinate system, gdf.dtypes lists the fields and gdf.head() shows the first rows. For a zip with several layers, add layer="parcels".
In the browser, shpjs, the library this viewer reads shapes with, turns a zip into GeoJSON with await shp(buffer). It gives no field types, sizes or coordinate-system name: read those from the .dbf header and the .prj yourself.
Questions about opening shapefiles
How do I open a shapefile without ArcGIS or QGIS?
Drop the zipped shapefile, or the .shp, .dbf and .prj together, on this page. It shows the shapes on a map with the attribute table and each layer’s details, in any modern browser, with nothing to install. To edit shapes or values you still need a GIS program such as QGIS (free) or ArcGIS Pro.
Why is my shapefile in the wrong place, or missing from the map?
Almost always the .prj file: it was left out, or it doesn’t match the coordinates. Without it, coordinates in metres can’t be placed, so the viewer asks for it instead of guessing. A .prj the viewer can’t read is named in the message; export the layer again as WGS 84 (EPSG:4326). Data a few hundred metres off usually uses an old datum: ED50, DHDN, Amersfoort and NAD27 are shifted for you, others get a warning.
Can I open just the .shp file?
Yes, but you only see the shapes: names and the attribute table are in the .dbf. If the coordinates are in metres it won’t open at all, because the .prj places them. Select the .shp, .dbf, .prj and .cpg together (Ctrl-click or Cmd-click), or zip them.
Why do names in my shapefile show strange characters like é or �?
The .dbf text was written in one encoding and read as another. A .cpg file normally names it; without one, this viewer checks for valid UTF-8 and otherwise uses the code page in the .dbf header, and About this file shows what it used. In QGIS, set it under Layer Properties → Source → Data source encoding.
Can I view a shapefile on a phone or a Mac?
Yes. It runs in Safari, Chrome, Firefox and Edge on Mac, Windows, Linux, iPhone, iPad and Android. On a phone, save the zip first, then press Choose a file and pick it; a zip is easier there than the loose parts.
Is the shapefile uploaded, and how large can it be?
It isn’t uploaded: your browser reads it on your device, and no copy goes to Spatibase or a third party. Only the background map tiles load from the internet. The limit is 50 MB for all the parts together; the table lists the first 500 features, and the downloads include all of them.
Moving the data into Spatibase? Read how to import a shapefile.