I am using leaflet.js to allow web users to select a region. Valid regions are US states, Canadian providences, and world countries (except for US and Canada). I constructed a shapefile myself using Qgis and saved it as a geojson. I simplified the geometries as much as I could.
The resulting shapefile is 400kb, but the geojson is over a megabyte. This is bigger than I would like. I need to reduce the network overhead involved in transferring this information.
What is the right way to do this?
The options I can imagine are:
- Serve the geojson file gzipped, unpack on the client.
- Parse the shapefile on the client to geojson
- Generate my own tiles from the shapefile and serve those


