ITI0011-13-HW2-Panoramio
Tagasi ITI0011 lehele.
Põhiosa
Ülesande tekst täpsustub. Kiiremad saavad juba alustada.
Kirjutada programm, mis käsurealt ette antud argumenti tõlgendab geograafilise asukohana (linn/piirkond/riik vms) ning küsib vastava asukoha kohta piltide nimekirja Panoramiost.
Programmile etteantav argument tuleb kõigepealt teisendada geokoordinaatideks. Selleks kasutada Google Maps API-t, näiteks: http://maps.googleapis.com/maps/api/geocode/xml?address=Tallinn&sensor=false . Täpsemalt võib API kohta lugeda siit: https://developers.google.com/maps/documentation/geocoding/
Sealt tuleb välja otsida koordinaadid bounding box elemendi "bounds" seest.
<GeocodeResponse>
<status>OK</status>
<result>
..
<geometry>
..
<bounds>
<southwest><lat>59.3518090</lat><lng>24.5501939</lng></southwest>
<northeast><lat>59.5914239</lat><lng>24.9262889</lng></northeast>
</bounds>
</geometry>
</result>
</GeocodeResponse>
Samad koordinaadid tuleb anda ette Panoramio API-le, näiteks: http://www.panoramio.com/map/get_panoramas.php?set=public&from=0&to=20&minx=24.550193&miny=59.351809&maxx=24.9262889&maxy=59.5914239&size=medium&mapfilter=true . Täpsemalt võib Panoramio API kohta lugeda siit: http://www.panoramio.com/api/data/api.html
Panoramio API annab vastuseks JSON formaadis tulemuse. Piltide andmed asuvad "photos" massiivis. Iga pildi kohta tuleb välja parsida ja salvestada pildi nimi (photo_title), pildi tegemise kuupäev (upload_date) ja pildi autor (owner_name).
{"count":1875,"has_more":true,"map_location":{"lat":59.438560500000001,"lon":24.752405745157176,"panoramio_zoom":7},
"photos":[{"height":335,"latitude":59.444141000000002,"longitude":24.765032000000001,"owner_id":6304679,
"owner_name":"Kalev Vask","owner_url":"http://www.panoramio.com/user/6304679",
"photo_file_url":"http://mw2.google.com/mw-panoramio/photos/medium/81410373.jpg","photo_id":81410373,
"photo_title":"Barque Kruzenshtern, Tallinn Maritime days 2011",
"photo_url":"http://www.panoramio.com/photo/81410373","upload_date":"31 October 2012","width":500},
...
]}
Punktid
Põhiosa - 5p
Programm suudab etteantud asukoha pildid trükkida välja suvalises järjestuses (näiteks selles samas, mis nad olid Panoramio API-st saades). Välja tuleb printida pildi nimi, pildi tegemise kuupäev ja pildi autor.
Puhverdamine - 3p
Programm puhverdab tulemused kõvakettale (faili). Iga asukoha kohta on eraldi puhver (fail).
Võimaldab käsurea parameetriga forsseerida veebist lugemist, isegi kui puhvrifail on olemas. Sellisel juhul kirjutatakse puhvrifail üle.
Võimaldab käsurea parameetriga lugeda veebist uued andmed ja kuvada välja vaid need, mida puhvris veel ei ole (kui puhver puudub, siis kuvatakse kõik tulemused). Seda saad testida selliselt, et kustutad oma puhvrifailist mõned kirjed ära ja kordad päringut.
Sorteerimine - 2p
Võimaldab tulemusi sorteerida pildi nime, pildi autori nime, pildi tegemise kuupäeva järgi. (1p)
Sorteerida saab ka tagurpidises järjekorras (reverse / descending). (1p)
Ülesanded (täpsustub): piltide sortimine, cache'imine, unikaalsed pildid (kui küsida näiteks harjumaa ja tallinn, siis programm peab ID järgi cache'ima mittekorduvad pildid)