Virtually this exact same question came up at opendata.SE: What are the most useful formats in which to release geospatial data?
So, hopefully I'm not violating any policies in quoting my own answer there:
My experience, making maps from quite a few government datasets:
For point data, CSV is the best, with "lat" and "lon" columns. Very easy to work with in a wide range of tools, including text editors, spreadsheets, etc. There are two downsides:
- GDAL requires a
.vrt
companion file.
- The naming of the
lat
and lon
columns is not totally standard. Many tools are pretty liberal in what they accept.
For lines and polygons, in decreasing order of preference:
- GeoJSON. Easy to work with, and the ability to edit in a text editor or with geojson.io is a real bonus, if you need to do search/replace, remove a couple of weird objects or copy and paste from one file to another. Another benefit is that non-GIS developers can make sense of it. Only issues I've run into is when someone provides data as say MultiPoint instead of Point.
- Shapefile. Very widely supported, but with two inconvenient points. First, it's a collection of files, so you have to pass around a .zip and extract it. Second, field names are limited to 10 characters. They're hard to edit for your average non-GIS person.
- KML/KMZ. These often have a lot of irrelevant cruft (styling, icons, etc), and attributes are sometimes encoded as mini HTML tables, which are really hard to work with. At least you can edit them easily with Google tools.
Honestly, though, the best answer is probably "all of them". Do everyone a favour and release the data in CSV (if point), GeoJSON, zipped Shapefile and KMZ.