@qn-pandora/pandora-visualization
Version:
Pandora 通用可视化库
69 lines (68 loc) • 2.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getGeojsonLine = exports.getGeojson = void 0;
var lodash_1 = require("lodash");
var geoTransform_1 = require("../../../utils/geoTransform");
var constants_1 = require("../../../constants");
function transformCoordinateSystem(lng, lat, coordinateSystem) {
if (coordinateSystem === constants_1.CoordinateSystem.GCJ02) {
var wgsLngLat = geoTransform_1.gcj2wgs(lat, lng);
return [wgsLngLat.lng, wgsLngLat.lat];
}
return [lng, lat];
}
function getGeojson(dataset, longitudeField, latitudeField, coordinateSystem) {
var rows = dataset.rows, fields = dataset.fields;
var features = rows
.map(function (row) {
var properties = fields.reduce(function (pre, cur, index) {
pre[cur.key] = row[index][0];
return pre;
}, {});
var longitude = properties[longitudeField];
var latitude = properties[latitudeField];
if (!lodash_1.isNumber(longitude) || !lodash_1.isNumber(latitude)) {
return null;
}
return {
type: 'Feature',
properties: properties,
geometry: {
type: 'Point',
coordinates: transformCoordinateSystem(longitude, latitude, coordinateSystem)
}
};
})
.filter(function (item) { return !!item; });
return {
type: 'FeatureCollection',
features: features
};
}
exports.getGeojson = getGeojson;
function getGeojsonLine(dataset, longitudeField, latitudeField, coordinateSystem) {
var rows = dataset.rows, fields = dataset.fields;
var coordinates = rows
.map(function (row) {
var properties = fields.reduce(function (pre, cur, index) {
pre[cur.key] = row[index][0];
return pre;
}, {});
var longitude = properties[longitudeField];
var latitude = properties[latitudeField];
if (!lodash_1.isNumber(longitude) || !lodash_1.isNumber(latitude)) {
return null;
}
return transformCoordinateSystem(longitude, latitude, coordinateSystem);
})
.filter(function (item) { return !!item; });
return {
type: 'Feature',
properties: {},
geometry: {
type: 'LineString',
coordinates: coordinates
}
};
}
exports.getGeojsonLine = getGeojsonLine;