» »

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".
"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...
Zbogom in hvala za vse ribe

Zgodovina sprememb…

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 :)
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.
"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...

gzibret ::

Morda ti bo tole kaj pomagalo.
Vse je za neki dobr!

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 :)
"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?!
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.
"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
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).
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
"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


//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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

jquery in div-i (strani: 1 2 )

Oddelek: Izdelava spletišč
8711226 (9964) lisjak
»

Java, double števila izven obsega (Problem)

Oddelek: Programiranje
12740 (531) Spura
»

PHP in JS problem :(

Oddelek: Programiranje
81712 (1520) l0g1t3ch
»

Google odšteva

Oddelek: Novice / Omrežja / internet
295599 (3989) MrStein
»

[Java] Kako filtrirati, katera števila lahko vpišeš?

Oddelek: Programiranje
182072 (1774) fiction

Več podobnih tem