Files
iD/modules/svg/path.js
2016-10-04 19:06:20 -04:00

18 lines
562 B
JavaScript

import * as d3 from 'd3';
export function svgPath(projection, graph, polygon) {
var cache = {},
clip = d3.geoClipExtent().extent(projection.clipExtent()).stream,
project = projection.stream,
path = d3.geoPath()
.projection({stream: function(output) { return polygon ? project(output) : project(clip(output)); }});
return function(entity) {
if (entity.id in cache) {
return cache[entity.id];
} else {
return cache[entity.id] = path(entity.asGeoJSON(graph));
}
};
}