NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/data-set/lib/connector/geojson.js
2023-09-14 14:47:11 +08:00

34 lines
1.4 KiB
Java

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var point_at_length_1 = tslib_1.__importDefault(require("point-at-length"));
var util_1 = require("@antv/util");
var d3_geo_1 = require("d3-geo");
var data_set_1 = require("../data-set");
var geoPathGenerator = d3_geo_1.geoPath();
function GeoJSONConnector(data, _options, dataView) {
dataView.dataType = data_set_1.DataSet.CONSTANTS.GEO;
var features = util_1.deepMix([], data.features);
// pre-process
features.forEach(function (feature) {
feature.name = feature.properties.name;
feature.longitude = [];
feature.latitude = [];
var pathData = (feature.pathData = geoPathGenerator(feature));
var points = point_at_length_1.default(pathData);
points._path.forEach(function (point) {
feature.longitude.push(point[1]);
feature.latitude.push(point[2]);
});
var centroid = geoPathGenerator.centroid(feature);
feature.centroidX = centroid[0];
feature.centroidY = centroid[1];
});
// dataView.origin = features;
return features;
}
data_set_1.DataSet.registerConnector('geo', GeoJSONConnector);
data_set_1.DataSet.registerConnector('geojson', GeoJSONConnector);
data_set_1.DataSet.registerConnector('GeoJSON', GeoJSONConnector);
exports.default = GeoJSONConnector;