Forum » Programiranje » algoritem za pretvorbo koordinat
algoritem za pretvorbo koordinat
Monster ::
..evo rabim en čimbolj natančen algoritem za pretvorbo naših(gauss kruegerjevih) koordinat v "navadno" oblike ala zem. dolžina, širina ... jezik ni važn.. google sm že petkrat obrno , pravtako najdi.si :) ... našel sm par zadev samo ali niso natančne, ali pa ne delujejo v celotnem območju slovenije :( ... skratka če ma kdo kaj kr na plan z tem! hvala
Ka zaboga...
CCfly ::
natančen algoritem za pretvorbo naših(gauss kruegerjevih) koordinat v "navadno" oblike ala zem. dolžina, širina
Vedno imaš podano zemljepisno širino in dolžino, ne glede na uporabljeno projekcijo. Povej zakaj potrebuješ pretvorbo pa ti bom morda lahko pomagal definirati "navadno obliko".
Vedno imaš podano zemljepisno širino in dolžino, ne glede na uporabljeno projekcijo. Povej zakaj potrebuješ pretvorbo pa ti bom morda lahko pomagal definirati "navadno obliko".
"My goodness, we forgot generics!" -- Danny Kalev
WarpedGone ::
Odpiraš 'can of worms' :)
Poišč kakšnga geografa, da ti mal pojasni mučke okol koordinat. Kakšna nočna mora ti ne uide :)
Been there, ran away...
Poišč kakšnga geografa, da ti mal pojasni mučke okol koordinat. Kakšna nočna mora ti ne uide :)
Been there, ran away...
Zbogom in hvala za vse ribe
Zgodovina sprememb…
- spremenilo: WarpedGone ()
CCfly ::
Tukaj se strinjam z WarpedOne. Tole ni tako enostavno kot izgleda, je pa res da za večino zadev zadostuje linearna preslikava, še posebej če imaš vse skupaj podano v WGS84 sistemu.
"My goodness, we forgot generics!" -- Danny Kalev
Monster ::
..ja na mojega geografa se cakam da najde zadeve :) .. na netu sm naso dosti programov ko to dela se pravi gausove koordinate ti spremeni v recimo ..
N46 13.6
E14 27.3
samo so zelo nenatančni( tudi do dveh minut nenatančni?! ) .. Nekaj sm gledal po priročnikih, samo nikjer ne najdem straight forward formul da bi jih enostvno implementiral .
drugace je pa tip datoteke
5094958.5 193450.5 340
x y z
in iz tega bi rad zemljepisno sirino in dolzino v stopinjah ... do takrat grem pa google razturavat spet :)
N46 13.6
E14 27.3
samo so zelo nenatančni( tudi do dveh minut nenatančni?! ) .. Nekaj sm gledal po priročnikih, samo nikjer ne najdem straight forward formul da bi jih enostvno implementiral .
drugace je pa tip datoteke
5094958.5 193450.5 340
x y z
in iz tega bi rad zemljepisno sirino in dolzino v stopinjah ... do takrat grem pa google razturavat spet :)
Ka zaboga...
Zgodovina sprememb…
- spremenil: Monster ()
CCfly ::
Hehe ti kar geodeta počakaj, da on pogrunta tole. Možno da gre za 46 stopinj N in 14 stopinj E, nakar se drugo vrednost uporabi za lokacijo v podobmočju, ki ju ti koordinati določata. Npr. 46 stopinj N + popravek(13.6).
PS: Ugibam.
PS: Ugibam.
"My goodness, we forgot generics!" -- Danny Kalev
Monster ::
em nenene .. ono 13.6 so pač minute zaradi natačnosti Z vrednost je pa višina v metrih :)
Ka zaboga...
CCfly ::
Mislil sem na tole obliko koordinat, ki ti jo izpljunejo drugi programi:
N46 13.6
E14 27.3
drugace je pa tip datoteke
5094958.5 193450.5 340
x y z
Za tole naj pa geodet ugotovi, v kakšni obliki so, saj zato so se pa šolali.
Ok lahko bi blefirali in rekli da imamo tukaj 50.94958 stopinj E in 19.34505340 stopinj N po WGS sistemu in pozabiš na gk projekcijo. Samo nisem pa ziher :)
Kakšno napako pa dobiš, če tole zrišeš na kakšen zemljevid ?
edit:
@gzibret: Če kupiš rastrsko mapo v trgovini imaš ponavadi spodaj napisano, kako pretvoriti koordinate za uporabo z GPS sprejemniki. Mislim da si navedel enako formulo.
Zato sem ga pa vprašal zakaj potrebuje pretvorbo :)
N46 13.6
E14 27.3
drugace je pa tip datoteke
5094958.5 193450.5 340
x y z
Za tole naj pa geodet ugotovi, v kakšni obliki so, saj zato so se pa šolali.
Ok lahko bi blefirali in rekli da imamo tukaj 50.94958 stopinj E in 19.34505340 stopinj N po WGS sistemu in pozabiš na gk projekcijo. Samo nisem pa ziher :)
Kakšno napako pa dobiš, če tole zrišeš na kakšen zemljevid ?
edit:
@gzibret: Če kupiš rastrsko mapo v trgovini imaš ponavadi spodaj napisano, kako pretvoriti koordinate za uporabo z GPS sprejemniki. Mislim da si navedel enako formulo.
Zato sem ga pa vprašal zakaj potrebuje pretvorbo :)
"My goodness, we forgot generics!" -- Danny Kalev
Zgodovina sprememb…
- spremenilo: CCfly ()
Monster ::
evo tole so meta podatki nase datoteke
FILENAME=C:\Documents and Settings\MonSSter\Desktop\DEM\test.xyz
DESCRIPTION=test.xyz
UPPER LEFT X=594462.500
UPPER LEFT Y=193437.500
LOWER RIGHT X=595212.500
LOWER RIGHT Y=193437.500
WEST LONGITUDE=16° 14' 22.15" E
NORTH LATITUDE=46° 52' 42.61" N
EAST LONGITUDE=16° 14' 57.57" E
SOUTH LATITUDE=46° 52' 42.20" N
NUM COLUMNS=128
NUM ROWS=128
PIXEL WIDTH=5.91 meters
PIXEL HEIGHT=0 meters
MIN ELEVATION=315 meters
MAX ELEVATION=340 meters
ELEVATION UNITS=meters
..testna varjanta
btw kje je on kako formulo objavo?!
FILENAME=C:\Documents and Settings\MonSSter\Desktop\DEM\test.xyz
DESCRIPTION=test.xyz
UPPER LEFT X=594462.500
UPPER LEFT Y=193437.500
LOWER RIGHT X=595212.500
LOWER RIGHT Y=193437.500
WEST LONGITUDE=16° 14' 22.15" E
NORTH LATITUDE=46° 52' 42.61" N
EAST LONGITUDE=16° 14' 57.57" E
SOUTH LATITUDE=46° 52' 42.20" N
NUM COLUMNS=128
NUM ROWS=128
PIXEL WIDTH=5.91 meters
PIXEL HEIGHT=0 meters
MIN ELEVATION=315 meters
MAX ELEVATION=340 meters
ELEVATION UNITS=meters
..testna varjanta
btw kje je on kako formulo objavo?!
Ka zaboga...
Zgodovina sprememb…
- spremenil: Monster ()
CCfly ::
UPPER LEFT X=594462.500
UPPER LEFT Y=193437.500
LOWER RIGHT X=595212.500
LOWER RIGHT Y=193437.500
WEST LONGITUDE=16° 14' 22.15" E
NORTH LATITUDE=46° 52' 42.61" N
EAST LONGITUDE=16° 14' 57.57" E
SOUTH LATITUDE=46° 52' 42.20" N
PIXEL WIDTH=5.91 meters
Tole je malo čudno. Rekel bi da tisti številki v tem primeru sploh nista koordinati, temveč da sta povezani s prikazom podatkov v rastrski obliki. Robova karte določa W/E/N/S LATITUDE/LONGITUDE.
btw kje je on kako formulo objavo?!
Eh ne formulo, bolj postopek. Formulo sem videl na specifično karti Slovenije 1:25000. Bom malo povprašal, če jo ima kolega pri sebi.
UPPER LEFT Y=193437.500
LOWER RIGHT X=595212.500
LOWER RIGHT Y=193437.500
WEST LONGITUDE=16° 14' 22.15" E
NORTH LATITUDE=46° 52' 42.61" N
EAST LONGITUDE=16° 14' 57.57" E
SOUTH LATITUDE=46° 52' 42.20" N
PIXEL WIDTH=5.91 meters
Tole je malo čudno. Rekel bi da tisti številki v tem primeru sploh nista koordinati, temveč da sta povezani s prikazom podatkov v rastrski obliki. Robova karte določa W/E/N/S LATITUDE/LONGITUDE.
btw kje je on kako formulo objavo?!
Eh ne formulo, bolj postopek. Formulo sem videl na specifično karti Slovenije 1:25000. Bom malo povprašal, če jo ima kolega pri sebi.
"My goodness, we forgot generics!" -- Danny Kalev
gzibret ::
Predlagam, da uporabiš kar sklepni račun:
npr. pretvarjanje x-ov v stopinje:
dx = št. pikslov (odčitaš iz karte) * širina piksla (podano v datoteki)
novi X = X (levi rob oz. Xmin) + dx
Xmin................................ stopinje (vse podano)
novi X (ki si ga izračunal) .....? stopinj
npr. pretvarjanje x-ov v stopinje:
dx = št. pikslov (odčitaš iz karte) * širina piksla (podano v datoteki)
novi X = X (levi rob oz. Xmin) + dx
Xmin................................ stopinje (vse podano)
novi X (ki si ga izračunal) .....? stopinj
Vse je za neki dobr!
gzibret ::
Imam pa tudi en html program, ki dela tole specifično nalogo za področje Hrvaške (5 in 6 cona). Slovenija leži v 5 coni (parametri beselovega elipsoida so enaki za obe državi).
Pošli tvoj email, pa ti ga pošljem. Meni se res ne ljubi iskati tehle tvojih formul, pa če imaš ti voljo in se spoznaš na html in c (verjetno gre za C), potem ti bo sigurno prav prišlo.
Sem hotel tisti del pripopati tule, ampak ne gre skozi (napiše neveljavne html oznake, ko se v formuli nahaja kakšen zna večji ali manjši).
Pošli tvoj email, pa ti ga pošljem. Meni se res ne ljubi iskati tehle tvojih formul, pa če imaš ti voljo in se spoznaš na html in c (verjetno gre za C), potem ti bo sigurno prav prišlo.
Sem hotel tisti del pripopati tule, ampak ne gre skozi (napiše neveljavne html oznake, ko se v formuli nahaja kakšen zna večji ali manjši).
Vse je za neki dobr!
Zgodovina sprememb…
- spremenilo: gzibret ()
CCfly ::
Mislim da bi ti prav prišla oznaka st.koda html v oglatih oklepajih (glej Vesoljčev post).
http://www.slo-tech.com/script/forum/izpisitemo.php?threadID=116165#neprebrano
http://www.slo-tech.com/script/forum/izpisitemo.php?threadID=116165#neprebrano
"My goodness, we forgot generics!" -- Danny Kalev
gzibret ::
//pretvaranje br.pixela na karti u (x,y) koordinate x=Math.round(x0-ty*4)/1000 y=Math.round(y0+tx*4)/1000 //ispis (x,y) document.Show.x.value =x document.Show.y.value =y //iz (x,y), Gaus-Kruegerovih koordinata izracunaj zemljopisne (lambda,fi) flag=Math.floor(y / 1000) - 5 y=y-1000*flag dy=y-5500 dy2=dy*dy dx=x-5000 la=45.14518695+.009*dx-7.1E-09*dx*dx dla=(-dx * 7.71E-07 - .0025486) * dy2-2.4 la=la + dla / 3600 la0=Math.floor(la) lm=(la - la0) * 60 lm0=Math.floor(lm) ls=(lm - lm0) * 60 k11=(.01271763 + dx * 1.9995E-06 + dx * dx * 4.46E-10) k2=(1.56934E-10 + dx * 9.501E-14 + dx * dx * 5.67E-17) fi=15 + 3 * flag + k11 * dy - k2 * dy * dy2 fi0=Math.floor(fi) fm=(fi - fi0) * 60 fm0=Math.floor(fm) fs=(fm - fm0) * 60 //ispis (lambda,fi) document.Show.la.value=la0+"°"+lm0+"'"+Math.floor(10*ls)/10+'"' document.Show.fi.value=fi0+"°"+fm0+"'"+Math.floor(10*fs)/10+'"' //iz (lambda,fi) izracunaj kartu dla=(la-45) dfi=(fi-15) k=369-50*Math.floor(dla*2)+Math.floor(dfi*2) ddla=dla*2-Math.floor(dla*2) ddfi=dfi*2-Math.floor(dfi*2) l=1+2*(ddla<.5)+(ddfi>.5) ddla=ddla*2-Math.floor(ddla*2) ddfi=ddfi*2-Math.floor(ddfi*2) m=1+2*(ddla<.5)+(ddfi>.5) if ((k!=kk0)||(l!=ll0)||(m!=mm0)){ document.Show.k.value=k+"-"+l+"-"+m; document.Show.k100.value= k1[k]; s=document.Show.k100.value if(s=='undefined'){s='-nepoznato'} if(s.charAt(0)=='-'){document.Show.k100.style.color="#ff0000";document.Show.k100.value=s.substring(1,20)} else{document.Show.k100.style.color="#000000"} document.Show.k25.value=K[k*100+l*10+m]; s=document.Show.k25.value if(s=='undefined'){s='-nepoznato'} if(s.charAt(0)=='-'){document.Show.k25.style.color="#ff0000";document.Show.k25.value=s.substring(1,20)} else{document.Show.k25.style.color="#000000"} kk0=k;ll0=l;mm0=m; } //kraj return true; }
Dela! To je pretvorba za 25.000. Samo ne vem, če se bo dalo s tem kaj pomagati.
Za dodatna vprašanja sem na voljo
(tipi spremenljivk, pa neki arrayi so pred to kodo, samo je tega kar precej).
Vse je za neki dobr!
Monster ::
verjetno bo priso prav tale del kode
..zaenkrat me moti samo da ima malo morje kostant ;) ... no mogoce so pa nujne bom testiral ..
//iz (x,y), Gaus-Kruegerovih koordinata izracunaj zemljopisne (lambda,fi)
flag=Math.floor(y / 1000) - 5
y=y-1000*flag
dy=y-5500
dy2=dy*dy
dx=x-5000
la=45.14518695+.009*dx-7.1E-09*dx*dx
dla=(-dx * 7.71E-07 - .0025486) * dy2-2.4
la=la + dla / 3600
la0=Math.floor(la)
lm=(la - la0) * 60
lm0=Math.floor(lm)
ls=(lm - lm0) * 60
k11=(.01271763 + dx * 1.9995E-06 + dx * dx * 4.46E-10)
k2=(1.56934E-10 + dx * 9.501E-14 + dx * dx * 5.67E-17)
fi=15 + 3 * flag + k11 * dy - k2 * dy * dy2
fi0=Math.floor(fi)
fm=(fi - fi0) * 60
fm0=Math.floor(fm)
fs=(fm - fm0) * 60
//ispis (lambda,fi)
document.Show.la.value=la0+"°"+lm0+"'"+Math.floor(10*ls)/10+'"'
document.Show.fi.value=fi0+"°"+fm0+"'"+Math.floor(10*fs)/10+'"'
..zaenkrat me moti samo da ima malo morje kostant ;) ... no mogoce so pa nujne bom testiral ..
Ka zaboga...
Zgodovina sprememb…
- spremenil: Monster ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | jquery in div-i (strani: 1 2 )Oddelek: Izdelava spletišč | 11226 (9964) | lisjak |
» | Java, double števila izven obsega (Problem)Oddelek: Programiranje | 740 (531) | Spura |
» | PHP in JS problem :(Oddelek: Programiranje | 1712 (1520) | l0g1t3ch |
» | Google odštevaOddelek: Novice / Omrežja / internet | 5599 (3989) | MrStein |
» | [Java] Kako filtrirati, katera števila lahko vpišeš?Oddelek: Programiranje | 2072 (1774) | fiction |