úterý 8. srpna 2017

Konverze S-JTSK (Křovák) do WSG84 (GSM) pomocí PROJ4.JS

Ač nejsem odborníkem, přes kartografii, projekce, občas mám potřebu konvertovat souřadnice dostupné od ČÚZK např. v rámci výměnného referenčního formátu exportovaného z RÚIAN. Dlouho jsem hledal nástroj, který by byl dobře dostupný s mými znalostmi a hlavně, který bych mohl zařadit do vlastních konverzních rutin. Cčková knihovna PROJ.4 je pro mě příliš komplikovaná pro moje občasné hrátky. Začal jsem tedy příkazovou řádkou konkrétně příkazem cs2cs a při nedávné další iteraci konvertoru jsem narazil na dlouho hledané.

Existuje port PROJ.4  projektu jako nativní javascript knihovna pro node.js - proj4.js.

Použití pro převod mezi systémy zmíněnými v titulku (S-JSTK do WSG84) je triviální.

Instalujeme modul:
npm install --save proj4

importujeme knihovnu
const proj4 = require('proj4')
definujeme projekce
proj4.defs("EPSG:4326","+proj=longlat +datum=WGS84 +no_defs");
proj4.defs("EPSG:5514","+proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +towgs84=589,76,480,0,0,0,0 +units=m +no_defs");



a provedeme vlastní konverzi podle potřeby:
console.log(proj4("EPSG:5514","EPSG:4326",[-710056.96,-1116931.88]));

a kupupříkladu pro indexaci v Elasticsearch 

let gps=proj4("EPSG:5514","EPSG:4326",[-710056.96,-1116931.88])
let data={
   location: {
        lat:gps[1],
        lon:gps[0]

   }