Hei !
Onko php:ssä valmista funktiota jolla voi muuttaa sijainti koordinaatit tuollaiseen muotoon kuin esim. bing ja google käyttää.
Eli tämä
69°3'21" N 20°47'58" E
muotoon
69.0558333333333, 20.7994444444444
Käsittääkseni ei ole. Tuosta regexpilla poimii ja jakaa minuutit 60:lla ja sekunnit 3600:lla.
Entropia on tehnyt näköjään koodiesimerkinkin (ilman poimimista) http://mureakuha.com/koodikirjasto/1171
<?php function muunna($str) { return preg_replace( '/((?:\\d+°)?)((?:\\d+\')?)((?:\\d+")?) ([NESW])/e', '(intval("$1") + intval("$2") / 60.0 + intval(\'$3\') / 3600.0) * ("$4" == "N" || "$4" == "E" ? 1 : -1)', $str ); } muunna("69°3'21\" N, 20°47'58\" E"); // 69.055833333333, 20.799444444444
Kiitän, tuo Entropian esimerkki auttoi.
Tässä toteutukseni. http://veijola.net/sijainti/
Nyt tuo sijainti sarake pitäisi saada sellaiseksi jossa olisi raaka kuva
Suomen kartasta jossa pari kaupunkia merkittynä ja koordinaattien mukaan näyttäisi vaikka punaisen pisteen kartalla, jotta selviäisi suunnilleen sijainti. Eli vähän tähän tyyliin http://fi.wikipedia.org/wiki/Oulu
Onko antaa ideoita, varsinkin kun koordinaatit kasvaa ylöspäin mentäessä
ja näytöllä sijainti pixeleinä pienenee. Koska kuvia on paljon tulisi kartan
olla yksi ja sama taustakuva jonka päällä vain näkyy pilkku.
<table border="1"> <tr> <th>pituutta</th> <th>leveyttä</th> <th>korkeus</th> <th>kuva</th> <th>sijainti</th> <th>aika</th> <th>nimi</th> </tr> <?php foreach (glob("../sijainti/{*.jpg,*.gif,*.png}", GLOB_BRACE) as $filesimg) { $data = @exif_read_data($filesimg); $deg = ereg_replace('/1', '', $data["GPSLatitude"][0]); $min = ereg_replace('/1', '', $data["GPSLatitude"][1]); $sec = ereg_replace('/1', '', $data["GPSLatitude"][2]); $frac = ($min * 60 + $sec) / 3600; # $decimal = $deg + $frac; # $data["GPSLatitudeRef"], $deglo = ereg_replace('/1', '', $data["GPSLongitude"][0]); $minlo = ereg_replace('/1', '', $data["GPSLongitude"][1]); $seclo = ereg_replace('/1', '', $data["GPSLongitude"][2]); $fraclo = ($minlo * 60 + $seclo) / 3600; # $data["GPSLongitudeRef"] $kuva = $data[FileName]; echo '<tr><td> ', $deg + $frac, '</td> <td> ', $deglo + $fraclo , '</td><td> ' , substr($data['GPSAltitude'], 0, -6), ' m</td><td>' , '<img src="../sijainti/'.$kuva.'" width="200">' , '</td><td> ' , 'sijainti', '</td><td> ' , $data["DateTimeOriginal"], '</td><td> ' , $kuva , '</td></tr>'; } ?>
peg kirjoitti:
Tässä toteutukseni.
Onko antaa ideoita, varsinkin kun koordinaatit kasvaa ylöspäin mentäessä
ja näytöllä sijainti pixeleinä pienenee.
Siis ihan tosissasiko kysyt? Jotenkin tuntuu että et ole edes yrittänyt miettiä itse. Jos luvun kertoo -1:llä, niin siitä tulee negatiivinen. Joudut joka tapauksessa skaalaamaan ja siirtämään origoa, että saat koordinaatit täsmäämään kuvan pikseleiden kanssa.
Eli siis:
x = x-siirtymä + x-skaalaus * longtitude
y = y-siirtymä + y-skaalaus * latitude
Eli oletettavasti y-skaalaus on negatiivinen numero...
Siksi juuri kysynkin, tuo skaalaminen ja kääntäminen tuntuu aika hankalalta, mutta ei ehkä sittenkään niin hankalalta kuin ensiksi ajattelin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.