UNPKG

@qn-pandora/pandora-visualization

Version:

Pandora 通用可视化库

69 lines (68 loc) 2.44 kB
"use strict"; 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;