getUTMCRSCode(latitude, longitude) { let zoneNumber = Math.floor((longitude + 180) / 6) + 1; let hemisphere = latitude >= 0 ? '326' : '327';
let utmCRSCode = `EPSG:${hemisphere}${String(zoneNumber).padStart(2, '0')}`;
return { zoneNumber, utmCRSCode }; }
convertToUTM(latitude, longitude, zoneNumber, utmCRSCode) { proj4.defs('EPSG:4326', `+proj=longlat +datum=WGS84 +no_defs`); proj4.defs(utmCRSCode, `+proj=utm +zone=${zoneNumber} +datum=WGS84 +units=m +no_defs`); const [utmX, utmY] = proj4('EPSG:4326', utmCRSCode, [longitude, latitude]); return [utmX, utmY]; }
convertToWGS84(utmX, utmY, zoneNumber, utmCRSCode) { proj4.defs(utmCRSCode, `+proj=utm +zone=${zoneNumber} +datum=WGS84 +units=m +no_defs`); proj4.defs('EPSG:4326', '+proj=longlat +datum=WGS84 +no_defs');
const [longitude, latitude] = proj4(utmCRSCode, 'EPSG:4326', [utmX, utmY]); return [latitude, longitude]; }
|