34 lines
1.4 KiB
Java
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;
|