@flumens/utils 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/location.js +1 -1
- package/package.json +1 -1
package/dist/location.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isValidLocation=exports.normalizeCoords=exports.gridrefAccuracy=void 0,exports.prettyPrintGridRef=n,exports.locationToGrid=i,exports.parseGrid=function(t){let e;const o=r.default.GridRefParser.factory(t);o&&(o.osRef.x+=o.length/2,o.osRef.y+=o.length/2,e=o.osRef);return e},exports.gridrefStringToLatLng=function(t){try{const e=r.default.GridRefParser.factory(t);return e?e.osRef.to_latLng():null}catch(t){console.error(t.message)}return null},exports.isValidGridRef=function(t){try{const e=r.default.GridRefParser.factory(t);return!(!e||!r.default.MappingUtils.is_gb_hectad(e.hectad))}catch(t){console.error(t.message)}return!1},exports.isInGB=function(t){if(t.latitude){const e=r.default.latlng_to_grid_coords(t.latitude,t.longitude);return!!e&&"GB"===e.country}return!1},exports.updateModelLocation=function(e,r){return t.__awaiter(this,arguments,void 0,(function*(t,e,r=!1){var o;if(null===(o=t.metadata)||void 0===o?void 0:o.deleted)return void console.warn("LocationUtils: skipping deleted model location set");const n=Object.assign({},e);n.latitude=parseFloat(parseFloat(`${n.latitude}`).toFixed(5)),n.longitude=parseFloat(parseFloat(`${n.longitude}`).toFixed(5)),(n.accuracy||Number.isFinite(n.accuracy))&&(n.accuracy=parseFloat(parseFloat(`${n.accuracy}`).toFixed(2))),(n.altitude||Number.isFinite(n.altitude))&&(n.altitude=parseFloat(parseFloat(`${n.altitude}`).toFixed(2))),(n.altitudeAccuracy||Number.isFinite(n.altitudeAccuracy))&&(n.altitudeAccuracy=parseFloat(parseFloat(`${n.altitudeAccuracy}`).toFixed(2))),n.source="gps",r||(n.gridref=i(n));const a=t.data.location,c=Object.assign(Object.assign({},a),n);t.setGPSLocation?yield t.setGPSLocation(c):(t.data.location=c,yield t.save())}))},exports.prettyPrintLocation=function(t){if(!t||!t.latitude)return"";if(t.gridref)return n(t.gridref);const e=i(t);if(e)return n(e);return`${parseFloat(t.latitude).toFixed(4)}, ${parseFloat(t.longitude).toFixed(4)}`},exports.checkGridType=function(t,e){if(!e)return!1;const r=t.gridref||"";let{length:o}=exports.gridrefAccuracy[e];/^.\d/.test(r)&&(o-=1);return r.length===o},exports.doesExceedGridRef=a,exports.normalizeGridRefAcc=function t(e,r,o){if(o>=1e4)return null;if(a(e,r,o))return t(e,r,10*o);return e.to_gridref(o)},exports.getGridSquareCenter=function(t){const e=r.default.GridRefParser.factory(t);if(!e)return null;const o=e.osRef;return new e.NationalRef(o.x+e.length/2,o.y+e.length/2).to_latLng()},exports.transformToLatLon=function t(e){const r=new o.SphericalMercator;try{const{type:o}=e;let{coordinates:n}=e;if("Point"===o)n=[n];else if("MultiLineString"===o){const r=e=>t({coordinates:e});return e.coordinates.map(r)}const i=t=>r.inverse(t);return n.map(i)}catch(t){return[]}},exports.getGeomWKT=function(t){const r=new o.SphericalMercator;function n(t){return t.map((([t,e])=>r.forward([t,e])))}const i=JSON.parse(JSON.stringify(t));"Polygon"===i.type?i.coordinates[0]=n(i.coordinates[0]):i.coordinates=n(i.coordinates);return e.default.stringify(i)},exports.getGeomCenter=function(t){const e=JSON.parse(JSON.stringify(t));if("Polygon"===e.type)return[e.coordinates[0][0][0],e.coordinates[0][0][1]];return[e.coordinates[0][0],e.coordinates[0][1]]},exports.calculateLineLength=function(t){function e(t,e,r,o){const n=(r-t)*Math.PI/180;e=e*Math.PI/180,o=o*Math.PI/180;const i=n*Math.cos((e+o)/2),a=o-e;return 6371e3*Math.sqrt(i*i+a*a)}if(t.length<2)return 0;let r=0;for(let o=1;o<t.length;o++)r+=e(t[o-1][0],t[o-1][1],t[o][0],t[o][1]);return r};const t=require("tslib"),e=t.__importDefault(require("wellknown")),r=t.__importDefault(require("@flumens/bigu")),o=require("@mapbox/sphericalmercator");function n(t){const[,e]=t.match(/^([A-Z]*)\d/i),r=t.replace(e,""),o=r.length;if(o%2)return`${e} ${r}`;return`${e} ${r.slice(0,o/2)} ${r.slice(o/2)}`}function i(t){const e=r.default.latlng_to_grid_coords(t.latitude,t.longitude);if(!e||!Number.isFinite(t.accuracy))return null;const o=r.default.GridRefParser.get_normalized_precision(2*t.accuracy);return e.to_gridref(o)}function a(t,e,r){const{accuracy:o}=e,{x:n}=t,{y:i}=t;return n%r-o<0||(n%r+o>r||(i%r-o<0||i%r+o>r))}exports.gridrefAccuracy={tetrad:{label:"Tetrad (2km square)",length:5},monad:{label:"Monad (1km square)",length:6}};exports.normalizeCoords=({lat:t,lng:e})=>e>180?{lat:t,lng:e-180-180}:e<-180?{lat:t,lng:180+(e+180)}:{lat:t,lng:e};exports.isValidLocation=t=>Number.isFinite(null==t?void 0:t.latitude)&&Number.isFinite(null==t?void 0:t.longitude);
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isValidLocation=exports.normalizeCoords=exports.gridrefAccuracy=void 0,exports.prettyPrintGridRef=n,exports.locationToGrid=i,exports.parseGrid=function(t){let e;const o=r.default.GridRefParser.factory(t);o&&(o.osRef.x+=o.length/2,o.osRef.y+=o.length/2,e=o.osRef);return e},exports.gridrefStringToLatLng=function(t){try{const e=r.default.GridRefParser.factory(t);return e?e.osRef.to_latLng():null}catch(t){console.error(t.message)}return null},exports.isValidGridRef=function(t){try{const e=r.default.GridRefParser.factory(t);return!(!e||!r.default.MappingUtils.is_gb_hectad(e.hectad))}catch(t){console.error(t.message)}return!1},exports.isInGB=function(t){if(t.latitude){const e=r.default.latlng_to_grid_coords(t.latitude,t.longitude);return!!e&&"GB"===e.country}return!1},exports.updateModelLocation=function(e,r){return t.__awaiter(this,arguments,void 0,(function*(t,e,r=!1){var o;if(null===(o=t.metadata)||void 0===o?void 0:o.deleted)return void console.warn("LocationUtils: skipping deleted model location set");const n=Object.assign({},e);n.latitude=parseFloat(parseFloat(`${n.latitude}`).toFixed(5)),n.longitude=parseFloat(parseFloat(`${n.longitude}`).toFixed(5)),(n.accuracy||Number.isFinite(n.accuracy))&&(n.accuracy=parseFloat(parseFloat(`${n.accuracy}`).toFixed(2))),(n.altitude||Number.isFinite(n.altitude))&&(n.altitude=parseFloat(parseFloat(`${n.altitude}`).toFixed(2))),(n.altitudeAccuracy||Number.isFinite(n.altitudeAccuracy))&&(n.altitudeAccuracy=parseFloat(parseFloat(`${n.altitudeAccuracy}`).toFixed(2))),n.source="gps",r||(n.gridref=i(n));const a=t.data.location,c=Object.assign(Object.assign({},a),n);t.setGPSLocation?yield t.setGPSLocation(c):(t.data.location=c,yield t.save())}))},exports.prettyPrintLocation=function(t){if(!t||!t.latitude)return"";if(t.gridref)return n(t.gridref);const e=i(t);if(e)return n(e);return`${parseFloat(t.latitude).toFixed(4)}, ${parseFloat(t.longitude).toFixed(4)}`},exports.checkGridType=function(t,e){if(!e)return!1;const r=t.gridref||"";let{length:o}=exports.gridrefAccuracy[e];/^.\d/.test(r)&&(o-=1);return r.length===o},exports.doesExceedGridRef=a,exports.normalizeGridRefAcc=function t(e,r,o){if(o>=1e4)return null;if(a(e,r,o))return t(e,r,10*o);return e.to_gridref(o)},exports.getGridSquareCenter=function(t){const e=r.default.GridRefParser.factory(t);if(!e)return null;const o=e.osRef;return new e.NationalRef(o.x+e.length/2,o.y+e.length/2).to_latLng()},exports.transformToLatLon=function t(e){const r=new o.SphericalMercator;try{const{type:o}=e;let{coordinates:n}=e;if("Point"===o)n=[n];else if("MultiLineString"===o||"Polygon"===o){const r=e=>t({coordinates:e});return e.coordinates.map(r)}const i=t=>r.inverse(t);return n.map(i)}catch(t){return[]}},exports.getGeomWKT=function(t){const r=new o.SphericalMercator;function n(t){return t.map((([t,e])=>r.forward([t,e])))}const i=JSON.parse(JSON.stringify(t));"Polygon"===i.type?i.coordinates[0]=n(i.coordinates[0]):i.coordinates=n(i.coordinates);return e.default.stringify(i)},exports.getGeomCenter=function(t){const e=JSON.parse(JSON.stringify(t));if("Polygon"===e.type)return[e.coordinates[0][0][0],e.coordinates[0][0][1]];return[e.coordinates[0][0],e.coordinates[0][1]]},exports.calculateLineLength=function(t){function e(t,e,r,o){const n=(r-t)*Math.PI/180;e=e*Math.PI/180,o=o*Math.PI/180;const i=n*Math.cos((e+o)/2),a=o-e;return 6371e3*Math.sqrt(i*i+a*a)}if(t.length<2)return 0;let r=0;for(let o=1;o<t.length;o++)r+=e(t[o-1][0],t[o-1][1],t[o][0],t[o][1]);return r};const t=require("tslib"),e=t.__importDefault(require("wellknown")),r=t.__importDefault(require("@flumens/bigu")),o=require("@mapbox/sphericalmercator");function n(t){const[,e]=t.match(/^([A-Z]*)\d/i),r=t.replace(e,""),o=r.length;if(o%2)return`${e} ${r}`;return`${e} ${r.slice(0,o/2)} ${r.slice(o/2)}`}function i(t){const e=r.default.latlng_to_grid_coords(t.latitude,t.longitude);if(!e||!Number.isFinite(t.accuracy))return null;const o=r.default.GridRefParser.get_normalized_precision(2*t.accuracy);return e.to_gridref(o)}function a(t,e,r){const{accuracy:o}=e,{x:n}=t,{y:i}=t;return n%r-o<0||(n%r+o>r||(i%r-o<0||i%r+o>r))}exports.gridrefAccuracy={tetrad:{label:"Tetrad (2km square)",length:5},monad:{label:"Monad (1km square)",length:6}};exports.normalizeCoords=({lat:t,lng:e})=>e>180?{lat:t,lng:e-180-180}:e<-180?{lat:t,lng:180+(e+180)}:{lat:t,lng:e};exports.isValidLocation=t=>Number.isFinite(null==t?void 0:t.latitude)&&Number.isFinite(null==t?void 0:t.longitude);
|