@golemio/parkings
Version:
Golemio Parkings Module
60 lines • 2.45 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeParkingZoneDataSets = void 0;
const uuid_by_string_1 = __importDefault(require("uuid-by-string"));
const GeodataHelper_1 = require("./GeodataHelper");
const IPR_DATA_PROVIDER = "/opendata.iprpraha.cz";
const getLocationData = async (dataTsk, dataIprTransformed) => {
const locationBaseData = {
data_provider: dataTsk.data_provider,
location: dataTsk.location,
centroid: dataTsk.centroid,
total_spot_number: dataTsk.total_spot_number,
source: dataTsk.source,
source_id: dataTsk.source_id,
};
if (!dataIprTransformed || dataIprTransformed.length === 1) {
return [
{
...locationBaseData,
id: dataIprTransformed
? dataIprTransformed[0].id
: (0, uuid_by_string_1.default)(JSON.stringify({ source_id: dataTsk.source_id, source: `${dataTsk.source}`.toUpperCase() })),
total_spot_number: dataIprTransformed ? dataIprTransformed[0].total_spot_number : dataTsk.total_spot_number,
},
];
}
return dataIprTransformed.map((el) => {
const centroid = (0, GeodataHelper_1.getPointOnFeature)(el.location);
return {
id: el.id,
...locationBaseData,
location: el.location,
total_spot_number: el.total_spot_number,
centroid,
};
});
};
const mergeParkingZoneDataSets = async (dataTsk, dataIpr) => {
const result = {
parking: [],
locations: [],
};
for (const item of dataTsk) {
const parkingData = { ...item };
if (dataIpr[item.source_id]) {
parkingData.location = (0, GeodataHelper_1.mergeGeometries)(dataIpr[item.source_id]);
parkingData.data_provider += IPR_DATA_PROVIDER;
}
parkingData.centroid = (0, GeodataHelper_1.getPointOnFeature)(parkingData.location);
const locationData = await getLocationData(parkingData, dataIpr[item.source_id]);
result.parking.push(parkingData);
result.locations.push(...locationData);
}
return result;
};
exports.mergeParkingZoneDataSets = mergeParkingZoneDataSets;
//# sourceMappingURL=LocationBuilderHelper.js.map