@flumens/utils 0.3.3 → 0.3.4
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.d.ts +1 -1
- package/dist/location.js +1 -1
- package/package.json +1 -1
package/dist/location.d.ts
CHANGED
|
@@ -70,7 +70,7 @@ type LatLng = {
|
|
|
70
70
|
export declare const normalizeCoords: ({ lat, lng }: LatLng) => LatLng;
|
|
71
71
|
export declare const isValidLocation: (location?: Location | null) => boolean;
|
|
72
72
|
type XYPoint = [number, number];
|
|
73
|
-
export
|
|
73
|
+
export declare function transformToLatLon(geometry: any): any;
|
|
74
74
|
export declare function getGeomWKT(geometry: LineString | Polygon): string;
|
|
75
75
|
export declare function getGeomCenter(geometry: LineString | Polygon): XYPoint;
|
|
76
76
|
export {};
|
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=
|
|
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]]};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);
|