I'm trying to display some geojson vector features on a leaflet map. The size of my GeoJSON is too big (25.4mb of data, 8.47mb gzipped), so I'm trying to use a TopoJSON format to reduce the size without loosing detail.
I converted my geojson data with topojson tool and just basic params: topojson --id-property okato_code -p name -o adm.topojson adm.json
That significantly reduced the file size (down to 1.54mb of data, 201.3kb gzipped). But when I translate it back ( using topojson.object() ) to GeoJSON on the client, it looks overgeneralized and like it has some incorrect topologies when zooming in. I thought there was no generalization happening during translation to/from topoJSON, then why are the geometries different? How to make them identical? My goal is just to reduce the size of the file without any simplification of geometries.
Here's the map - http://basemap.ru/json/ You have to wait for the big GeoJSON to download, it's included for comparison, but after it loads, you can see a distinct difference on high zoom levels. GeoJSON layer is orange and TopoJSON layer is white. I've included the layer switcher to turn topojson and geojson on and off.
The data itself is here: http://basemap.ru/json/json/adm.geojson http://basemap.ru/json/json/adm.topojson The script with translation is http://basemap.ru/json/mapscript.js
If it makes sense, my map is in Asia Lambert Conformal Conic projection (http://spatialreference.org/ref/esri/102012/)