Conectarea API-urilor Google Maps și Flickr

Imaginați-vă că ați făcut harta frumoasă pe care o solicită un client; adăugând tot felul de marcaje interesante, ferestre pop-up, suprapuneri personalizate și fotografii. Dar apoi clientul menționează că vor să-și poată adăuga propriile fotografii fără să vă tulbure sau să facă coduri în sine. Acesta este locul în care API-ul Flickr este foarte util.

API-ul Flickr vă permite să utilizați în mod esențial site-ul Web Flickr ca bază de date sau zonă de stocare pentru fotografiile dvs. Folosind API-ul Flickr, poți să iei fotografiile de pe Flickr și să le afișezi, printre altele, pe harta Google. De fiecare dată când dvs. sau clientul dvs. adăugați fotografii pe contul dvs. pe site-ul Web Flickr, harta dvs. Google este actualizată automat.

Dacă vă uitați la demo, fotografiile care apar când faceți clic pe butonul "Evenimente mai mici" sunt scoase dintr-un cont Flickr pe care l-am setat pentru acest tutorial. Sau, dacă vă uitați la harta istoricului Portsmouth, fotografiile care apar când faceți clic pe butonul Vechi fotografii (meniul din dreapta) sunt toate desenate de pe Flickr.

API-ul Flickr vă permite să faceți mult mai mult decât să luați fotografii din propriul cont. Acesta vă oferă posibilitatea de a crea interogări complexe pe metadate, desenând fotografii de la toți utilizatorii Flickr. Acest lucru vă oferă un instrument extrem de puternic pe care îl puteți folosi la tot felul de utilizări interesante și creative. Cu toate acestea, dezavantajul este că capacitatea extensivă a aplicației API poate face un pic cam descurajant, dacă nu l-ați folosit înainte și poate fi dificil să știți de unde să începeți. Având în vedere acest lucru, acest tutorial se concentrează pe exemplul de a desena fotografii din propriul dvs. cont Flickr, oferind o plimbare completă a procesului. Odată ce ai atârnat de asta, ar trebui să fii capabil să folosești bine restul API-ului.

Acest tutorial se bazează pe tutorialele anterioare, care au acoperit obținerea de informații creative cu API-ul Google Maps și crearea de suprapuneri personalizate, explicând modul în care puteți conecta API-ul Flickr la API-ul Google Maps.


Memento rapidă despre API-uri

Un API sau o interfață de programare a aplicațiilor este un mod fantezist de a defini un set de comenzi, publicate de o companie (de exemplu, Facebook, Twitter, You Tube, Flickr), care permit oricui să creeze o versiune foarte personalizată a conținutului lor. Atunci când oamenii vorbesc despre "mash-up" înseamnă că au folosit API-ul a două sau mai multe companii pentru a combina conținutul. Există literalmente mii de astfel de API în jurul valorii de; aruncați o privire la site-ul Web programabil pentru o listă.

Primul tutorial a analizat modul în care API-ul Google Maps vă va permite să faceți tot felul de lucruri, inclusiv personalizarea culorilor, marcajele de hartă, stilul pop-up box, nivelul de detaliere, nivelul de zoom. API-ul Flickr este la fel de amplu.


Noțiuni de bază Cu API-ul Flickr

Pentru a începe cu API-ul Flickr, trebuie să creați un cont Flickr, apoi să adăugați câteva fotografii în contul dvs., astfel încât să aveți ceva de colaborat. Încercați să utilizați câteva imagini din locații diferite (acest lucru va fi important mai târziu). Imaginile utilizate în acest tutorial sunt disponibile în fișierele sursă din partea de sus a acestei pagini.

Notă: Dacă utilizați aceste imagini, vă rugăm să le acordați creatorilor originali, listați la poalele acestei pagini.

Odată ce aveți conținut de jucat, este timpul să începeți cu API-ul. Acestea sunt câteva site-uri cheie.

  • Ghidul dezvoltatorilor API pentru Flickr. Acesta este un fel de "ghid de început".
  • Documentația API Flickr. Aceasta afișează toate metodele API (adică tot ceea ce puteți face cu API), formatele pe care le puteți utiliza pentru a solicita date și formatele în care datele pot fi returnate. Marcați această pagină!
  • Pagina de ajutor API Flickr.

Înainte de a începe, primul lucru pe care trebuie să-l faceți este să obțineți propria cheie API. Faceți notă de aceste detalii; veți avea nevoie de ei mai târziu!


"Hello World" a API-ului Flickr

Aruncați o privire la acest exemplu simplu; utilizează API-ul Flickr pentru a accesa fotografiile din contul Flickr pe care l-am creat pentru acest tutorial. În loc să listați fragmente de cod izolate aici, este mai util dacă vă uitați la codul pentru întregul site web pentru a vedea cum funcționează lucrurile împreună. Accesați exemplul simplu, faceți clic dreapta pe pagină și selectați Vizualizare sursă. Sau descărcați sursa din partea de sus a acestei pagini și trageți-o în afară.

Comentariile din codul sursă oferă o explicație detaliată, dar merită oferită o scurtă trecere a câtorva domenii cheie.  

Adresa URL

Cel mai important lucru pentru a-ți obține capul este modul în care accesezi API-ul Flickr folosind o adresă URL specială. Construiți această adresă URL pentru a "cere" datele pe care le faceți. Prima parte a acestui URL este -

http://api.flickr.com/services/rest/

Adăugați apoi lucruri pentru a specifica ce faceți după. Primul lucru pe care îl adăugați este metoda -

http://api.flickr.com/services/rest/?method=flickr.people.getPublicPhotos

Adăugați apoi argumentele și formatul de care aveți nevoie, care au un semn între fiecare -

http://api.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=1c9f777eb7446f34a7261dc1a54be4b2&user_id=99599718@N05&format=json&jsoncallback=?
  • numele de utilizator argument este contul din care doriți să desenați fotografiile. Utilizați idGettr pentru a rezolva această problemă.
  • api_key este codul obținut în pasul anterior. Puteți construi această adresă URL manual, examinând documentația pentru metoda aleasă, de ex. flickr.people.getPublicPhoto, dar acest lucru este un pic fiddly.

Expertul pentru adrese URL

Din fericire, Flickr oferă un link către un expert expert (numit API Explorer) în partea de jos a fiecărei pagini de "metodă". Un cuvânt de avertizare, totuși; în mod implicit, adresa URL generată de expert are "nojsoncallback = 1" la sfârșit. Întrucât trebuie să împingem rezultatele într-o funcție, în cazul nostru, sfârșitul ar trebui să fie "nojsoncallback =?" (Pentru mai multe detalii, consultați formatul de răspuns JSON).


Exemplu de creare a adresei URL care solicită API-ul Flickr.

Deci, pentru a construi adresa URL care solicită API-ul Flickr, trebuie să:-

  • Accesați pagina principală de documentare API Flickr și selectați metoda (din lista din dreapta) pe care doriți să o utilizați.
  • Apoi, pe pagina "metoda" (de exemplu, flickr.people.getPublicPhoto), aruncați o privire mai atentă la descriere și detalii pentru a vă asigura că aceasta este cea pentru dvs. Apoi derulați până jos în partea de jos a paginii și faceți clic pe API explorer legătură.
  • În pagina de explorator API, completați informațiile relevante despre argumente, apoi derulați în jos. Selectați ieșirea JSON. (Mai multe despre formatele de ieșire mai târziu). Și selectați "Nu semnați apelul?" pe măsură ce analizăm datele publice. Apoi faceți clic pe Metoda de apel buton (de mai sus).
  • Uitați-vă la partea de jos a ecranului acum. Ar trebui să vezi că ți s-au prezentat rezultatele interogării tale. Și, la sfârșit, este adresa URL de care aveți nevoie!
  • Dacă copiați această adresă URL în browserul dvs., veți vedea efectiv rezultatul interogării. Ele sunt adesea greu de citit, dar dacă copiați rezultatele în formatul JSON, atunci toate vor fi dezvăluite. După cum sa menționat mai sus, înainte de a utiliza această adresă URL pentru a apela Flickr din propriile pagini web, modificați sfârșitul la "nojsoncallback =?" Și nu uitați să înlocuiți api_key argument cu propria cheie.
$ .getJSON ("http://api.flickr.com/services/rest/?method=flickr.people.getPublicPhotos&api_key=YOUR_FLICKR_API_KEY_HERE&user_id=YOUR_FLICKR_ID_HERE&format=json&jsoncallback=?", displayImages1);

Capturați rezultatele

Odată ce ați construit adresa URL care solicită API-ul Flickr, avem nevoie de o modalitate de captare a rezultatelor. Facem acest lucru folosind metoda $ .getJSON jQuery. Metoda $ .getJSON citește în date care sunt în format JSON (de exemplu, mai jos) și apelează o funcție (în acest caz displayImages1), care procesează datele într-un fel (în acest caz, afișând imaginile dintr-o pagină web).


Datele (în format JSON) preluate din acest exemplu. (Numai informațiile despre primele două fotografii sunt vizibile în acest ecran).

Așteaptă - Ce este exact JSON?

În timp ce suntem pe subiectul JSON, merită să subliniem că JSON este doar o modalitate de formatare sau structurare a informațiilor, astfel încât un calculator să o poată citi. Dacă vă uitați la ieșirea JSON (de mai sus), puteți începe să vedeți modul în care codul accesează fiecare bit al datelor. Deci, de exemplu, data.photos.photo (uită-te în displayImages1 funcția în codul sursă al exemplului simplu) direcționează javaScript în fotografie în JSON unde sunt stocate majoritatea informațiilor. Apoi, de exemplu, var photoID = element.id; accesează elementul id pentru fiecare fotografie.

Un ultim exemplu: pisoi

Înainte de a continua, merită să aruncați o privire rapidă la un alt exemplu. Să îmbrățișăm scopul principal al internetului (adică să împărtășim poze cu pisici) și să găsim imagini etichetate cu cuvântul "pisoi".  


Să sară sau să nu sară, de William Leiwakabessy

Pentru a maximiza abilitățile de identificare a pisicilor, de data aceasta vrem să căutăm prin fotografiile încărcate de toți. Deci, primul pas este construirea interogării API Flickr, care arată astfel -

http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=1c9f777eb7446f34a7261dc1a54be4b2&tags=kitten&format=json&jsoncallback=?

Acest apel API utilizează metoda flickr.photos.search. Această adresă URL este apoi introdusă în $ .getJSON și sunt procesate în mod similar cu primul exemplu. Uitați-vă la exemplul live pentru a vedea rezultatul. Codul sursă este disponibil prin linkul din partea de sus a acestei pagini.

Odată ce ați aruncat o privire la cele două exemple, mergeți la utilizarea API-ului pentru a vă lua propriile imagini din contul dvs. Flickr și a le afișa pe o pagină web.


Varful icebergului!

Prima dvs. perie cu API-ul Flickr ar fi trebuit să vă pregătească principiile cheie ale modului în care funcționează. Cu toate acestea, probabil că ați început să observați cât de vast este!

Acest lucru nu este un lucru rău, deoarece vă oferă o gamă largă de posibilități. Utilizați documentația API ca un fel de "listă de cumpărături". Faceți-vă timp să examinați metodele (listate în partea dreaptă a paginii de pornire a documentației API) pentru a vedea ce este oferit.

S-ar putea să fi observat, de asemenea, diferitele formate de solicitare (de exemplu, folosim "restul" - așa cum indică cuvântul din adresa URL care apelează API - de mai sus), formatele de răspuns (de exemplu, folosim JSON) cu API (de exemplu, folosim JavaScript). Din nou, aceasta este o forță a API, deoarece înseamnă că conținutul de pe Flickr poate fi portat în multe aplicații diferite.

Combinația folosită în acest tutorial a fost aleasă deoarece este o combinație bună pentru a începe să învățați despre API-ul Flickr și pentru că este combinația logică atunci când conectați acest API cu API-ul Google Maps API. Merită încă să aruncați o privire asupra celorlalte opțiuni disponibile în partea stângă a paginii de pornire a documentației API.


Geotagging

Frumusețea Flickr este că puteți edita tot felul de meta date pentru fiecare fotografie.


Setarea locației unei fotografii în Flickr.

Bitul care ne interesează aici este locația geografică a fiecărei fotografii și este ușor să setați pentru fiecare imagine:

  • Conectați-vă la contul dvs. Flickr.
  • Faceți clic pe "Sunteți" în partea din stânga sus.
  • Faceți clic pe pictograma meniu (trei cercuri mici într-un rând) în partea dreaptă jos.
  • Dați clic pe "Adăugați la hartă". Apoi urmați instrucțiunile de pe ecran. Flickr funcționează automat și stochează latitudinea și longitudinea pentru fiecare fotografie.

Trebuie să repetați acest proces pentru fiecare dintre fotografiile dvs..


Crearea unui grup Google și Flickr

După ce ați făcut geotagging-ul fotografiilor în Flickr, le puteți afișa pe o hartă Google. Faceți clic aici pentru a vedea o demonstrație live și apoi faceți clic dreapta pentru a vedea codul sursă.


Flickr și mashup-ul Google maps.

Similar cu exemplul anterior, comentariile din codul sursă oferă o explicație detaliată. Cu toate acestea, merită subliniat câteva puncte-cheie. În primul rând, pentru a construi adresa URL care solicită API-ul Flickr, folosim din nou flickr.photos.search. De data aceasta am inclus argumentele has_geo = 1 și Extra = geo pentru a vă asigura că și latitudinea și longitudinea pentru fiecare imagine sunt incluse și în rezultate. Pentru a vedea rezultatele adresei URL care solicită API-ul Flickr, copiați-o (mai jos) în browser și apoi utilizați formatul JSON Formatter pentru a vedea ieșirea mai clar.

http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=1c9f777eb7446f34a7261dc1a54be4b2&user_id=99599718@N05&has_geo=1&extras=geo&format=json&jsoncallback=?

De asemenea, merită să subliniem faptul că, deoarece codul JavaScript se leagă prin imagini, utilizează de asemenea API-ul Google Maps pentru a crea marcaje de hartă utilizând valorile latitudinii și longitudinii din API-ul Flickr. Apoi, în cadrul corp tag-uri, API-ul Google Maps este folosit pentru a crea harta în sine.

Ar trebui să puteți recrea ceva similar folosind propriile imagini pe care le-ați încărcat în Flickr. Site-ul iTouchMap este util pentru a afla care ar trebui să fie punctul central al hărții dvs..


Flickr și Harta noastră de festivaluri din Marea Britanie

Tot ce rămâne să faceți acum este să luați tot ceea ce este acoperit în acest tutorial și să-l aplicați pe Harta Festivalului din Marea Britanie pe care am construit-o în primul și al doilea tutoriale din această serie.

Acesta este genul de lucru pe care îl urmărim. Dacă faceți clic pe butonul "Evenimente mai mici", veți vedea imaginile extrase din Flickr.

Pentru completare, am adăugat, de asemenea, imagini care nu vin de pe Flickr, pictogramele "principalului festival". De asemenea, pentru a vedea diferitele opțiuni în ceea ce privește casetele pop-up, am folosit atât "casetele de informații" (pentru "principalele festivaluri"), cât și ferestrele informative implicite pentru fotografiile de pe Flickr.

Această hartă a fost creată făcând câteva modificări ale codului din tutorialul anterior și adăugând codul din hărțile Google Maps și Flickr (de mai sus). Mai întâi creăm o variabilă (smallEventsToggle) pentru a ține seama dacă marcajele "evenimente mici" sunt afișate sau nu. Și apoi creați o nouă opțiune în handelRequests pentru a face față situației când butonul "evenimente mici" (smallEvents). În cele din urmă, se adaugă codul din pasul anterior și câteva atingeri de finisare, cum ar fi schimbarea marcatorului de hartă implicit.

Ca de obicei, pentru a vă păstra fragmente mari în cadrul tutorialului, comentariile din codul sursă descărcabilă oferă o explicație detaliată.


Ce urmează?

Următorul tutorial va analiza optimizarea, proiectarea, depanarea și testarea.

Credite de imagine

  • Green Man Festival - de Nicholas Smale
  • V-Festival - de Liam Swinney
  • V-Festival - de Dylan J C
  • Descarcă - de Sezzles
  • Bestival - de Mike Mantin
  • Hop Farm Festival - de Gerardo Lazzari
  • Strawberry Fields Festival - prin remixyourface
  • Wireless - prin numele surreal dat
  • Lovebox - de Annie Mole
  • Colectarea globală - de Oli R
  • Wilderness - de Andy Carter
  • Zile frumoase - de Brian Marks
  • Creamfields - de Gerardo Lazzari
  • Ora de vară britanică - de Andrea Sartorati
  • Rewind - de Chris Osborne
  • Sfârșitul festivalului de drum - de jaswooduk
  • Y nu Festival - de Jo Jakeman
  • Isle of Wight - de David Jones
  • Festivalul de Reading - de David Martyn Hunt
  • Latitude - de către markheybo
  • Festivalul Leeds - de Richard Riley
  • Secret Garden Party - de Wonderlane
  • Festivalul Glastonbury - de wonker
  • Glasgowbury - de Mike Mantin
  • T în parc - de Ian Oldham
  • Rockness - de Ian Oldham
  • Icoane de hartă verde

Creditele pentru fotografiile de pe marcatorii de hărți se găsesc la sfârșitul primului tutorial.