Fórumok
Sziasztok,
Azzal a kihívással találkoztam, hogy EOVX és EOVY koordinátákat kellene átszámolnom GPS lon és lat formátumokra.
Találtam online átszámítókat, de maga a képlet nincs meg. Szeretnék írni egy kis programot, ami egy csv fájlt alakít át lokálisan.
Nézegettem pár szakdolgozatban, ami elérhető online, de sajnos nem találtam meg a képletet.
Köszi a segítséget előre is.
Itt tartok:
using System;
namespace GPS_transformer
{
class Position
{
public DateTime timeStamp { get; private set; }
public string address { get; private set; }
public int eovx { get; private set; }
public int eovy { get; private set; }
public double longitude { get; private set; }
public double latitude { get; private set; }
public Position(DateTime timeStamp, string address, int eovx, int eovy)
{
this.timeStamp = timeStamp;
this.address = address;
this.eovx = eovx;
this.eovy = eovy;
this.EOV_to_GPS84();
}
private void EOV_to_GPS84()
{
//longitude = 47;
//latitude = 19;
}
}
}
Üdv,
Zoli
Hozzászólások
Szerintem egyszerűbb valami proj4 wrappert, vagy DotSpatial lib-et használni.
Ezekben találhatsz hasznos dolgokat.
Igen, ezt megtaláltam, van benne egy php fájl, ami 7 parameterből számolja, vagy minimum 3 ból (eovx, eovy, eovh)
Ez nem jó igy sajnos.
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf @ SSD
jújjj ez az én szakdogám! :D
[Falu.me](Tárhely|Domain)
Nem lesz rá egzakt képlet. A két vetület közötti átjárás csak fokozatos közelítő mágia segítségével lehetséges.
Most nem tudtam megtalálni azt a leírást(valószínűleg a változónevek is azt követik), ami alapján a lenti jó régi C kód született, de talán használható belőle valami.
Köszi! Átültetem c sharp osztályba, igazabol majdnem keszen vagyok, csak nem talalom a Csharp statikus Math osztályában a sinl meg cosl függvényeket. Ezek kihelyettesíthetőek?
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf @ SSD
Itt a sinl a long double típus és long double visszatérési érték miatt van. Teszteld le az ország különböző térségeire, ha elég pontos az eredmény, akkor nem kell vele foglalkozni.
Proj4?
Esetleg ez hátha segítség:
https://github.com/KAMI911/lactransformer
Ez csináltam vele Pythonban. Nem nagyon néztem rá mostanában, de ha hibát találsz akkor szólj és próbálom javítani. LAS, CSV és még egy pár formátumon működik. VITEL2014-es korrekciót is, ha deciméter alatti pontosság kell.
http://eht.gnssnet.hu/images/hdif.jpg
Ha pedig lakossági RTK-ra van szükséged, akkor erről itt egy cikkem:
https://linuxmint.hu/blog/2020/10/gps-utan-pontosabb-meres-nyomvonal-ke…
KAMI | 神
Linux Mint: https://linuxmint.hu LibreOffice: http://libreoffice.hu SeaMonkey : http://is.gd/smhun
Legyél Te is Mozilla és Linux Mint önkéntes
elvileg a sinl csak annyiban különbözik hogy long double ben adja vissza...
-- Zoli ---
Lenovo T400 @ Crunchbang "Waldorf @ SSD
Hátha segít:
http://www.agt.bme.hu/on_line/etrs2eov/etrs2eov_doc.html
anno ezt használtam: http://sas2.elte.hu/tg/bajnok.htm
"The only valid measurement of code quality: WTFs/min"
pattints föl egy PostGIS-t, és queryvel szépen és gyorsan átszámolja, rákapcsolódni meg bármilyen nyelvből rátudsz.
Valami ilyesmi: SELECT ST_Transform(ST_SetSRID( ST_Point(x, y), 23700), 4326) (de lehet hogy nem pont így, reg hasznaltam :) )
“Any book worth banning is a book worth reading.”
Nos az a baj, hogy a két rendszer között (mivel nagyon nem azonos az alapfelület) nem létezik egzakt átszámítási módszer.
A lényeg az, hogy először az EOV koordinátákból kell GRS67 geocentrikus (X, Y, Z) koordinátákat számolni, majd valamilyen trükkel átszámítani a WGS84 ellipszoidra. Az átszámítás általában egy térbeli hasonlósági transzformáció, melynek paramétereit olyan pontokból számítjuk, amelyeknek mind a két rendszerben ismert a koordinátája.
A szakdolgozatomban egy olyan megoldást mutattam be, amely először közelítő (jellemzően 1 m alatti) pontossággal számítja át a pontokat, majd egy javítórács segítségével pontosítja a számítási eredményeket. A javítórács úgy készül, hogy a pl 1 km * 1 km-es rácsháló pontjait kiszámítjuk az közelítő és az előző pontos módszerrel, és az eltéréseket tároljuk egy adatbázisban. Innentől kezdve nincs más dolgunk, mint lekérdezni az adatbázisból az átszámítandó pont közelébe eső pl 4 rácspontot és interpolációval megbecsülni, hogy mekkora lehet az eltérés a kérdéses ponton, majd a becsült javítási étékekkel módosítani az előzetes koordinátát.
[Falu.me](Tárhely|Domain)