Я бы посмотрел на TopoJSON, который творит чудеса с размером GeoJSON.
TopoJSON — это расширение GeoJSON, которое кодирует топологию. Вместо того, чтобы представлять геометрию дискретно, геометрия в файлах TopoJSON сшивается вместе из общих сегментов линий, называемых дугами. TopoJSON устраняет избыточность, предлагая гораздо более компактное представление геометрии, чем GeoJSON; типичные файлы TopoJSON на 80% меньше, чем их эквиваленты GeoJSON.
https://github.com/mbostock/topojson
Вы можете кодировать существующие файлы GeoJSON с помощью утилиты командной строки:
topojson -o output.json input.json
или в вашем случае, если возможно, используйте серверный API:
var topojson = require("topojson");
var collection = {type: "FeatureCollection", features: […]}; // GeoJSON
var topology = topojson.topology({collection: collection}); // TopoJSON
На стороне клиента вы должны десериализовать TopoJSON с помощью API на стороне клиента:
<script src="http://d3js.org/topojson.v1.min.js"></script>
var geoJson = topojson.feature(topology, object);
В идеале файлы TopoJSON следует кэшировать, а не генерировать их по каждому запросу, но это зависит от вашего приложения.
person
iH8
schedule
27.12.2013