wkt-parser-helper
Version:
Module to help parse GeoJSONs to WKT and back
87 lines (86 loc) • 3.34 kB
JavaScript
;
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, definition)=>{
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
get: definition[key]
});
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
convertFeatureCollection: ()=>convertFeatureCollection,
convertFeatureToWK: ()=>convertFeatureToWK,
convertGeometryToWK: ()=>convertGeometryToWK,
convertToWK: ()=>convertToWK,
parseFromWK: ()=>parseFromWK,
convertFeatureCollectionToWktCollection: ()=>convertFeatureCollectionToWktCollection
});
const external_betterknown_namespaceObject = require("betterknown");
function convertGeometryToWK(geojson) {
return (0, external_betterknown_namespaceObject.geoJSONToWkt)(geojson);
}
function convertFeatureToWK(geojson) {
return convertGeometryToWK(geojson.geometry);
}
function convertFeatureCollection(featureCollection) {
if ('FeatureCollection' !== featureCollection.type) throw new Error('GeoJSON is not a FeatureCollection');
return `GEOMETRYCOLLECTION(${featureCollection.features.map((d)=>convertFeatureToWK(d)).join(',')})`;
}
function convertToWK(geojson) {
switch(geojson.type){
case 'Feature':
return convertFeatureToWK(geojson);
case 'FeatureCollection':
return convertFeatureCollection(geojson);
default:
return convertGeometryToWK(geojson);
}
}
function convertFeatureCollectionToWktCollection(geojson) {
return geojson.features.map((d)=>({
wkt: convertGeometryToWK(d.geometry),
...d.properties
}));
}
function parseFromWK(item, asFeature = false, properties = {}) {
const parsed = (0, external_betterknown_namespaceObject.wktToGeoJSON)(item);
if (asFeature) return {
type: 'Feature',
geometry: parsed,
properties
};
return parsed;
}
exports.convertFeatureCollection = __webpack_exports__.convertFeatureCollection;
exports.convertFeatureCollectionToWktCollection = __webpack_exports__.convertFeatureCollectionToWktCollection;
exports.convertFeatureToWK = __webpack_exports__.convertFeatureToWK;
exports.convertGeometryToWK = __webpack_exports__.convertGeometryToWK;
exports.convertToWK = __webpack_exports__.convertToWK;
exports.parseFromWK = __webpack_exports__.parseFromWK;
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
"convertFeatureCollection",
"convertFeatureCollectionToWktCollection",
"convertFeatureToWK",
"convertGeometryToWK",
"convertToWK",
"parseFromWK"
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
Object.defineProperty(exports, '__esModule', {
value: true
});