Как упростить API topojson?

Так что у меня нет проблем с упрощением использования topojson из командной строки с помощью флага -s, однако я не могу понять, как это сделать из модуля node.

Я вижу метод topojson.simplify(), но не могу понять, как он работает, так как нет документации.

У кого-нибудь есть понимание?


person user3121069    schedule 19.12.2013    source источник


Ответы (1)


Изучив тесты упрощения для topojson, я смог понять, как использовать toposjson.simplify(), но я не могу утверждать, что полностью знаю, что происходит. Вы можете увидеть тесты на гитхабе topojson.

По сути, topojson.simplify принимает на вход топологию и имеет 2 возможных варианта упрощения: «сохранение пропорции» и «минимальная площадь», вы также можете передать систему координат, также известную как «декартова» или «сферическая», хотя ее можно вывести при большинстве обстоятельств.

Примеры:

output = topojson.simplify(topology,{"minimum-area": 2,"coordinate-system": "spherical"});
output =topojson.simplify(topology,{"retain-proportion: 2,"coordinate-system": "spherical"});

Я не совсем уверен, что именно означают значения, которые вы передаете этим параметрам, однако более высокие значения, как правило, приводят к большему упрощению. Обратите внимание, что функция сохранения пропорции часто возвращает недопустимые топологии при передаче LineString, что может быть ожидаемым.

Кроме того, использование параметра квантования в topojson.topology может использоваться для создания меньшего и более простого вывода и может быть лучшим решением для некоторых подобных случаев использования, а также нигде не имеет четко документированных примеров серверного API, поэтому:

//very simplified, small output
topojson.topology({routes: routesCollection},{"quantization":100});
//very unfiltered, large output
topojson.topology({routes: routesCollection},{"quantization":1e8});

примечание: квантование по умолчанию равно 10000 (1e4), поэтому все, что меньше 10000, создаст меньший результат и наоборот.

person Alex Muro    schedule 07.02.2014