>> [MUSIC kucheza]
>> DAVID J. Malan: Hello.
Hebu kuchukua kutembea kwa njia ya Tatizo Set 8 Mashup,
ambayo ni kwenda changamoto ya kuteka juu ya mambo kwa ajili ya Google Maps
na mambo kutoka Google News na mash nao pamoja katika mtandao applet kwamba
inaruhusu mtumiaji kutafuta ramani ya habari za mitaa
miji maalum, miji, na codes zip.
Kwa kufanya hivyo, tunakwenda kuunganisha baadhi HTML, CSS, PHP, SQL,
JavaScript, na mbinu ujumla inayojulikana kama AJAX ili
kujenga immersive user uzoefu.
>> Hebu kwanza kwa Google Maps yenyewe.
Hii, bila shaka, labda ni interface familiar.
Lakini zinageuka kuwa Google Maps Pia hutoa API-- maombi
programu interface-- kupitia ambayo unaweza kuchukua mambo ya Google Maps
na kuunganisha yao katika maombi yako mwenyewe.
Hakika, katika hili mchakato, wewe kwenda
kupata michache ya URLs inasaidia hasa kwamba
wametajwa katika vipimo kwa ajili ya Tatizo Set 8,
hasa hii Anza Kuongoza au Developer ya Guide
kwa ajili ya Google Maps API Version 3 kama vizuri kama Maps Google JavaScript API
v3 kumbukumbu, ambayo ni kidogo zaidi arcane kusoma
lakini kwa kweli ina wote wa ngazi ya chini maelezo kuhusu kazi gani au njia
na vitu na mali na matukio kweli kuja na API,
sawa sana katika roho kwa [inaudible] kurasa.
>> Sasa kama sisi kuangalia katika Google News, utasikia
labda kuona interface familiar hapa.
Lakini zinageuka unaweza pia kutafuta Google News kwa geographies maalum
kupitia parameter HTTP kuitwa geo.
Kwa kweli, kama mimi zoom katika hapa, utaona kwamba
Mimi nina katika news.google.com/news/section?geo=02138.
Na, kwa hakika, kama mimi zoom nje, utaona kwamba mimi nina
kuangalia ukurasa na rundo zima la maoni kuhusu Cambridge, Massachusetts.
>> Wakati huo huo, kama mimi kweli mabadiliko URL, si kwa kuwa zip code kama hii,
lakini kitu kidogo Messier kama Cambridge, + Massachusetts,
ambapo pamoja na ni njia encode nafasi tabia katika URL na hit Enter,
utaona kwamba mimi kwa kweli kuona karibu habari hiyo.
Pengine ni kidogo tofauti kwa sababu Cambridge kweli
ina codes nyingi zip.
Sasa jinsi gani mimi kujua kwamba, na kwa kweli, ni jinsi gani mimi kwa namna fulani
kufunga miji na vijiji kwa codes zip katika kesi mimi
wanataka kuruhusu user kuangalia juu ama?
Naam, zinageuka kuwa kuna tovuti huko nje iitwayo
geonames.org ambayo ni mpango wa kuwa na
database inapatikana kwa uhuru wa kila aina ya habari ya kijiografia,
si tu kwa ajili ya Marekani, lakini pia kwa nchi nyingine pia.
Kwa kweli, kama mimi kwenda URL hii hapa, ambayo Pia umetajwa katika tatizo kuweka
vipimo, utaona ni tatu orodha ya rundo zima la files zip
yoyote ambayo inaweza kupakuliwa na wewe.
Kwa kweli, kwa tatizo hili kuweka utaenda kushusha us.zip.
Sasa ndani ya faili hili, ni mzima rundo la data katika muundo wa maandishi.
files ni sawa na CSV-- Comma Kinachotenganishwa Maadili file--
lakini kwa kweli anatumia tabo ya kutenga mashamba.
Sasa, wakati huo huo, kama ukiangalia hapa katika kile nimepata yalionyesha,
mashamba katika faili hii ni kwenda kuwa mambo kama codes nchi,
codes posta, majina ya mahali, na kisha, kwa namna fulani
au nyingine, majimbo na kata, jamii, na zaidi.
Kwa kweli, mimi wameweza tayari kupakuliwa faili hili mapema.
Hebu kwenda mbele na kufungua ni here-- us.text-- na kwa kweli, utasikia
kuona kama mimi kitabu chini ya mstari 16792 utaona kumbukumbu chache kwa ajili ya Cambridge,
Massachusetts na codes zake mbalimbali zip.
Nini pia kuona kuna kata, idadi ya baadhi ya kuwa mimi si kweli
kuelewa, bali pia wote njia juu ya haki,
baadhi GPS coordinates-- latitude na longitude.
Hii ni kubwa kwa sababu moja ya sifa za Google Maps API
ni uwezo wa kuchunguza ambapo wewe ni kijiografia
katika suala la GPS kuratibu.
>> Sasa hebu kuanza kufikiri jinsi ya kuanza zililingana mambo haya kwa pamoja.
Tumekuwa kupewa nzima rundo la usambazaji code,
vilevile MySQL database.
Kwa kweli, kama mimi kuvuta phpMyAdmin kuwa tayari nje, kama wewe hivi karibuni mapenzi,
pset8.SQL, utaona meza MySQL kwamba inaonekana kama hii, uwanja ID, nchi
code, kanuni posta, jina la mahali na zaidi.
aina ya wale wote nguzo mimi inayotokana tu
kwa kusoma readme.text faili hapa kwamba maalum
kama shamba ni integer, au varchar au kama.
>> Hivyo tumekuwa umba kwamba meza kwa ajili ya kwenu na kupewa wewe amri SQL
kutekeleza kujenga kwamba meza katika database yako mwenyewe,
lakini kuna kweli hakuna data katika yake bado.
Badala yake, wewe ni kwenda kuwa na download us.zip au zip nchi yoyote
faili na kwamba URL huko.
Na kisha utaenda kuwa na kuandika mstari amri script katika PHP kwamba
kwenda kufungua Nakala kwamba faili, iterate juu ya mistari yake,
na kisha kwa kila moja ya wale mistari kufanya insert
katika kwamba maeneo meza katika database yako MySQL.
Hivyo mwisho wa mchakato huu, itabidi kukimbia kwamba script hatimaye
mara moja tu katika nadharia.
Katika hali halisi itabidi pengine kuendesha rundo la nyakati
wakati kujaribu kurekebisha mende mbalimbali.
>> Hatimaye, wewe ni kwenda kuwa na database kubwa kweli kweli na maelfu
na maelfu ya safu ya kijiografia.
Basi wewe ni kwenda kuweka kwamba kuagiza script kando mara moja ni kazi
na database yako ni nzuri na sahihi, na kisha
wewe ni kwenda na hoja juu ya kweli kutekeleza mashup yenyewe.
mashup ni kwenda kuangalia kitu kidogo kama hii.
Wakati mashup.cs50.net, sisi kuwa na ufumbuzi wafanyakazi
kwamba inaonekana kitu kidogo kama hii.
Hakika, kama mimi bonyeza gazeti hili icon kwa Cambridge, Massachusetts,
utaona inazunguka icon kifupi na kisha
kuamuru orodha, a Vitone orodha ya makala
kuhusiana na Cambridge, Massachusetts.
Kama mimi bonyeza Charlestown, Massachusetts,
Mimi utaona sawa kwa mji huo.
Na Kama mimi bonyeza Watertown, Massachusetts,
kuna wanaweza kuwa yoyote habari za kutoka Watertown,
hivyo utaona kitu kama polepole siku habari.
>> Sasa, wakati huo huo, juu kushoto ni baadhi familiar Google Maps udhibiti
basi wewe zoom nje, sufuria juu, chini, kushoto, na kulia,
lakini pia sanduku tafuta kwamba sisi kuweka huko.
Hivyo kama mimi kutafuta, kusema ukweli, tu nyingine zip code Mimi najua,
90210, tutaweza kweli kuona Beverly Hills, California.
Wakati clicked ni inaongoza mimi California na rundo zima
wa habari kuhusu Beverly Hills.
Sasa angalia, pia, kilichotokea huko.
Kama mimi search wakati huu kwa ajili ya 02138 au hata Cambridge comma Massachusetts au baadhi ya
lahaja yake, unaweza kupata kidogo autocomplete dropdown.
Sasa hii ni kwa kutumia Plugin kwa ajili ya maktaba kuitwa jQuery,
na kwamba Plugin aitwaye typeahead.
Sisi tu kusoma kwa njia ya nyaraka,
kupakuliwa .js faili jumuishi ndani ya usambazaji code ili
hatimaye unaweza kuandika kificho kwamba fyller kwamba orodha dropdown na auto
uchaguzi au mapendekezo ya magari.
>> Sasa usambazaji code, ingawa, kwamba umepokea haina kufanya karibu kama mengi.
Unaweza kupata Google Map iliyoingia, na kupata udhibiti juu kushoto,
na wewe kupata sanduku ya utafutaji.
Lakini kama mimi aina ya kitu kama 02138, hakuna maeneo ni kupatikana bado.
Hivyo kwamba kinaendelea kuwa moja ya malengo yetu hapa.
Aidha, kama wewe kuchukua hatua nyuma na kuangalia ramani yenyewe,
hakuna habari yoyote.
Hata kama mimi click na Drag, hakuna markers kweli
kuonekana kwa habari kwa sababu kwamba changamoto ni wa kushoto kwa ajili yenu pia.
>> Hebu tuangalie basi katika usambazaji code.
Mara ve kupakuliwa pset8.zip na unzipped ni
katika vhost saraka yako katika CS50 Appliance,
utaona haya directories hapa ndani.
Bin-- ambayo kwa ujumla anasimama kwa binary kwa ajili ya executable programs--
pamoja, kama katika pset7, baadhi PHP files kwamba files nyingine ni pamoja na,
basi umma, ambayo ni files kwamba haja
kuwa hadharani kupatikana kwa mtumiaji na browser.
Hebu tuangalie katika bin directory, na tutaweza
kuona kwamba kuna faili kuna tayari kuitwa Import.
Kama sisi kufungua hili na gedit, tutaweza kuona kwamba, kwa bahati mbaya, kuna si mengi
huko.
Yote ni pale, ingawa, ni shebang saa ya juu
ambayo inabainisha ambayo interpreter-- katika kesi hii PHP--
itumike kwa kweli nitafanya faili hii.
Lakini basi ambapo anasema TODO ni wapi uko
kwenda haja ya kuandika baadhi ya kanuni kwamba pengine inahitaji config
faili kwamba katika pamoja na directory kama tumefanya kabla na files PHP.
Na kisha utaenda kuwa na namna fulani kufungua
us.text ambayo labda kuwa unzipped tayari.
Basi wewe ni kwenda kuwa na iterate juu ya mistari katika faili kwamba,
labda kwa kutumia baadhi ya kazi alipendekeza katika vipimo.
Kisha kuingiza kila moja ya hizo mistari kwenye MySQL database
kwa kutumia swala kazi, ambayo tumekuwa tena zinazotolewa with--
au angalau lahaja yake katika functions.php,
ambayo tutaweza kuona katika muda tu.
>> Sasa hebu karibu kuagiza na kwenda nyuma ya directory yetu na wakati huu kwenda katika
pamoja.
Na kama mimi kufanya ls huko, utaona files tatu kabisa kama Tatizo Set 7.
Na hebu tuangalie kwa haraka, kwa mfano, katika config.php.
Huko, ni mistari chache kuliko kabla, na
Inaonekana faili hili pamoja na constants.php na functions.php.
Sisi ni kutumia tofauti kidogo mbinu wakati huu kwa kweli
bayana kwamba files haya ni jamaa kwa saraka ya sasa __ DIR__
inawakilisha chochote saraka hii file, config.php, ni yenyewe katika.
Hivyo hii ni zaidi njia ya wazi ya kubainisha
nini files nyingine unataka kuhitaji.
>> Sasa kama mimi karibu faili hii na kufungua constants.php badala yake,
utaona faili kukumbusha kwa Set Tatizo 7 ya pamoja, pamoja na
na database tofauti inayoitwa pset8.
Hatimaye, katika functions.php, tutaweza kuona kazi moja tu
wakati huu inaitwa swala.
Hii ni karibu sawa isipokuwa sisi kushughulikia makosa wakati huu kidogo
tofauti, lakini ni matumizi ni sawa katika tatizo kuweka saba.
>> Sasa hebu kwenda nyuma katika pset8 wetu directory, kwenda katika umma, na katika huko
kama mimi kufanya ls, utaona this-- articles.php, index.html, search.php,
na update.php-- mafaili yote.
Na kisha fonts css, img, na JS directory kabisa kama pset7.
>> Hebu tuangalie index.html, ambayo ni
kwenda kuwa kweli hatua ya kuingia kwa smashup.
Sasa katika index.html, utaona nzima rundo la mambo kiungo katika kichwa,
hasa, kwa bootstrap kwa yetu wenyewe CSS ikifuatiwa na rundo zima la script
vitambulisho kwa ajili ya mambo kama ramani, API yenyewe, marker maalum na studio
shirika kwamba sisi zilizotajwa katika vipimo inapatikana na wewe,
jQuery yenyewe, bootstrap yenyewe, na maktaba nyingine
kuitwa underscore ambayo sisi majadiliano juu katika spec.
Underscore.js kama jquery.js ni maktaba JavaScript
ambayo ina rundo zima la utendaji kwamba mengi ya watu katika ulimwengu unataka
kuwepo katika JavaScript yenyewe.
Hivyo yote haya ni kweli maarufu kabisa.
Tumekuwa pia alieleza typeahead ambayo ni maktaba ambayo
gani kwamba autocomplete dropdown na hatimaye kiungo kwa mwenyewe JavaScript yetu.
>> Wakati huo huo, na pengine nashiriki, hii mashup
inaendeshwa na kiasi kidogo HTML hapa chini chini.
Ilani kwamba tumekuwa maalum div katika mwili wetu wa darasa la-chombo maji.
Hii, kwa bootstrap ya nyaraka, tu
ina maana kwamba div hii ni kwenda kujaza kutazama au dirisha browser ya kikamilifu.
>> Wakati huo huo, chini ya kwamba tuna div hiyo kufunguliwa na mara moja imefungwa
na ID ya kipekee ya ramani turubai.
Hii sasa ni kutoka Google Ramani nyaraka
kwa API wake, ambapo mimi tu haja ya kuwa div tupu ndani ambayo kuingiza,
hatimaye, Maps halisi Google.
Lakini zaidi juu ya kwamba katika kidogo tu.
>> Mwisho, kuna aina ndani ya hapa ambayo
zana Nakala sanduku up juu kushoto katika interface yetu kwa ajili ya kutafuta.
Taarifa kwamba tumekuwa kutumika kidogo ya bootstrap
hapa too-- mambo kama fomu-inline na aina ya kundi.
Tumekuwa kupewa zamani kipekee ID fomu.
Na kisha, hatimaye, mimi kwa kweli kuwa na aina ya pembejeo, ambayo ni pretty utambuzi,
ambao ID ni q.
Tu mkataba.
Q kwa query-- inaweza kuwa wameitwa chochote.
Na kisha placeholder, wakati huo huo, ni mji, jimbo,
na kanuni ya posta ambayo unaweza kukumbuka kuona katika mashup yetu demo mapema.
Hebu karibu faili hii.
>> Sasa tuangalie files PHP kwamba wakisubiri na kisha files JavaScript.
Katika files wetu PHP, tumekuwa tayari kutekelezwa kwa ajili yenu,
kwa mfano, updates.
Update.php-- sisi si kutumia kubwa kiasi ya muda juu ya here-- kwa kifupi
ni faili kwamba yetu JavaScript code ni kwenda
kuwasiliana kupitia AJAX kwamba Asynchronous mbinu hiyo
kujengwa katika JavaScript siku hizi kwamba ni kwenda kuruhusu sisi kuuliza update.php
kwa maelezo zaidi.
>> Hasa, wakati wowote user drags ramani
au hufanya search kwamba anaruka mtumiaji eneo jingine,
JavaScript code yetu, kama tutaweza hivi karibuni kuona, ni
kwenda kuwaita update.php na kuuliza kwa ajili ya 10 au hivyo markers
ndani ya kutazama misingi juu ya GPS kuratibu
ya juu na chini pembe ya ramani hiyo.
Sisi basi unaweza kuongeza idadi ya watu ramani sasa kwamba user ina wakiongozwa screen ili
kuona 10 pengine mpya markers kwa miji tofauti.
Wakati huo huo, faili hii ni hatimaye kwenda nitafanya SQL query
dhidi ya database yetu meza inaitwa maeneo ambayo
ni kwenda na kurudi wale Maeneo 10 au wachache.
>> Wakati huo huo, katika articles.php, ni mtu mwingine faili tumekuwa imeandikwa katika ukamilifu wake.
Ni sawa sana katika roho kwa Set Tatizo 7 ya Luke kazi,
ambayo aliwasiliana Yahoo Fedha kwa ajili yenu.
Hii mawasiliano ya faili Google News kwa ajili yenu, hatimaye grabbing
mashine-someka version-- katika kitu
kuitwa RSS format-- wa habari kwa Cambridge au Beverly Hills
au chochote mji ulichokitafutiza kwa misingi ya kwamba geoparameter.
Sisi Hazrat kwamba RSS, ambayo ni tu aina ya ghafi lugha inayoitwa XML,
na kisha sisi kweli kurudi kwa browser yako
na JavaScript code yako, hasa, katika muundo kuitwa
JSON, JavaScript Object Notation.
Sasa utaona katika specification-- sisi kumweka wewe
jinsi gani unaweza kweli kuona baadhi ya kuja JSON back--
kwamba utendaji huu hatimaye inakuwezesha idadi ya menus wale popup hivyo
kwamba wakati wewe click juu ya marker katika ramani
wewe kweli kuona rundo zima ya risasi, ambayo kila mmoja
viungo kwa makala.
>> Sasa hebu tuangalie moja iliyopita PHP faili ambayo, kwa bahati nzuri, hana
kuwa na kiasi kwenda on-- tu TODO pretty kubwa.
Hivi sasa faili hili anatangaza safu kuitwa maeneo.
Na kisha hatimaye prints kwamba safu katika JSON format--
pretty-uchapishaji tu hivyo kwamba mambo ni rahisi Debug.
Kwa bahati mbaya, katika katikati kuna TODO hii,
ambayo inatoa wito kwa wewe kutafuta database kwa maeneo vinavyolingana geo HTTP
parameter.
>> Na kwa kweli, hii ni kwenda kuwa moja ya challenges-- yako
kutekeleza utendaji huu hapa hivyo kwamba wakati wewe wasiliana faili hili na
URL kama search. php? geo = jambo fulani, code yako hatimaye kurudi JSON
safu ya maeneo yote katika yako database meza wanaofanana pembejeo kwamba.
Hivyo kama aina ya mtumiaji katika Cambridge, faili yako hapa search.php
lazima hatimaye kurudi JSON safu kwa wote wa mechi kwa Cambridge,
ambayo inaweza kuwa katika Massachusetts lakini inaweza hata kuwa mahali popote.
>> Mwisho, hebu tuangalie mbili files kwamba ni tuli ultimately--
CSS yako faili na faili yako JavaScript.
Kama mimi kwenda katika CSS directory yetu, kuna rundo zima la files huko,
lakini wengi wao ni maktaba.
Mimi nina kwenda kuangalia, hasa, katika styles.css,
ambayo ni ya kimataifa yetu wenyewe CSS kwamba kwenda stylize mashup hili lote.
Mimi itabidi kuondoka ni wewe kusoma kwa njia comments humu, lakini kwa kifupi,
hii ni CSS ili kuhakikisha kwamba yetu mashup, by default nje ya boksi,
inaonekana hasa kwa njia tunataka ubaya wake na ramani kujaza maoni bandari
na search sanduku up juu kushoto.
Tumekuwa pia kuchukuliwa uhuru wa stylizing kwamba typeahead dropdown
orodha kidogo pia.
>> faili muhimu zaidi labda kwa tatizo hili kuweka
hii ni moja ya mwisho, scripts.js.
Ndani ya JS saraka yako ni files hata zaidi.
Wote ni files maktaba isipokuwa kwa hii moja, scripts.js.
Kama sisi kufungua hili, hebu kuchukua yetu ziara ya mwisho kwa njia kazi ambayo
ni kujengwa katika faili hii kwa ajili yenu na wito makini
kwa todos kwamba uongo mbele.
>> Saa ya juu ya faili hili, ni vigezo tatu kimataifa.
Moja kwa ramani, ambayo ni kwenda kuwa rejea kwa ramani yetu Google.
Unaweza kufikiria ni aina ya kama pointer.
Wakati huo huo, tuna variable mwingine kimataifa
kuitwa info, ambayo inaonekana kuwa kuhifadhi thamani ya kurudi wito
kwa google.maps.InfoWindow mpya.
JavaScript inasaidia vitu ambayo ni sawa sana katika roho kwa Struts.
Na nini mstari huu kwa madhumuni yetu ni kufanya
ni kujenga info mpya dirisha katika kumbukumbu na kisha
kuweka kuzunguka kumbukumbu dharura katika variable kuitwa Info.
Na katika kati ya hizo, wakati huo huo, ni nini inaonekana
kuwa tupu JavaScript safu kuitwa markers.
Wote wa icons gazeti hayo, au wewe wanaweza kuchagua icon nyingine kabisa,
ni kwenda kuhifadhiwa hatimaye katika safu hii
ili tuweze urahisi sana kuongeza ramani na kuondoa yao kutoka ramani.
>> Sasa hebu kitabu chini kidogo na whiz
kupitia kificho kwamba kinaendelea kuwa kunyongwa kwa haraka kama DOM au hati
kitu mfano au ukurasa yenyewe ni tayari.
Kumbuka kwamba syntax hii hapa tu bayana
kwamba kanuni zifuatazo lazima ifanyike tu
wakati browser ina kumaliza kupakia kila kitu kingine.
>> Sisi kwanza kutangaza rundo zima la mitindo,
ambayo kuishia stylizing ramani kama kwa spec.
Sisi basi kutangaza rundo zima la chaguzi,
ambayo zaidi Customize Google ramani kwamba sisi ni juu ya embed.
Sisi kisha kutumia kidogo ya jQuery code, ambayo ni alielezea kwa undani kidogo zaidi
katika spec, kunyakua kwamba kipengele, ramani canvas
kwamba sisi hivyo kipekee kutambuliwa.
Na kisha line hii hapa ni kile inaonekana magically kutupa
Google ramani ndani ya maombi yetu wenyewe,
kuhifadhi kumbukumbu dharura kwa kuwa variable kuitwa ramani.
>> Hatimaye, chini hapa sisi kujiandikisha kile kinachoitwa msikilizaji.
Fikiria back-- njia, back-- kwa wiki sifuri katika CS50
wakati sisi inaonekana katika Scratch na msaada wake kwa njia ya kutembea
kupitia kwa mambo kuitwa matukio na matangazo.
Unaweza kuwa na kutumika hivyo mwenyewe, lakini ni
njia ambazo browser katika kesi hii
Unaweza kupata mawazo yetu wakati ni tayari kweli nitafanya baadhi ya kanuni.
Katika kesi hiyo, ni kwenda kusikiliza ramani ya kwa ajili ya tukio kuitwa wavivu.
Hii ina maana kwamba browser ina kumaliza kupakia ramani Google.
Katika hatua hii kazi kuitwa configure lazima hatimaye
lazima ifanyike.
Kazi hiyo, configure, tutaweza kuona, imeandikwa na sisi.
>> Sasa hapa chini ni kazi kwamba, kwa bahati mbaya,
ni tu marker TODO kuongeza.
Per spec. wewe ni kwenda haja kuandika kificho kwamba kweli
anaongeza marker-- kama inaonekana kama gazeti, au tack thumb,
au kitu else-- kwa ramani Google.
Hapa sasa ni kazi ambayo kuitwa configure.
Mimi itabidi kuondoka ni wewe kusoma kwa njia hii kwa undani zaidi,
lakini kutambua kwamba sisi kuongeza Wasikilizaji rundo zaidi
ili tuweze kutekeleza kanuni wakati user Clicks juu na drags ramani.
Sisi pia kuwa kanuni katika hapa kwamba initializes kwamba typeahead Plugin
ili dropdown orodha kweli kazi.
>> Lakini hebu kuzingatia tu michache ya maeneo humu.
Hasa, hii kufanya hapa.
Mimi itabidi kuahirisha kwa online nyaraka na vipimo
kwa jinsi ya kujaza TODO hii.
Lakini kwa kifupi, maktaba hii typeahead utapata kupita
katika nini ujumla inayojulikana kama template, ambayo ina baadhi ya placeholders variable
sawa sana katika roho kwa% printf ya. * s.
Lakini katika kesi hii, template kwa spec
utapata bayana nini vigezo unataka
kuingiza kutoka data hiyo kuja nyuma kutoka kitu kama PHP
files kwamba umefanya imeandikwa kuwa ni kutotoa moshi JSON pato.
>> Sasa hapa chini kutambua kwamba sisi ni kusikiliza kwa typeahead uchaguzi
wakati mtumiaji kweli inafanya a kutafuta na kuchagua thamani.
Hii ni jinsi sisi ni kweli kwenda kusikiliza kwa kuwa
na kutekeleza baadhi ya kanuni kama matokeo.
Kisha sisi kuendelea configure mashup kidogo tu.
Na, hatimaye, sisi wito hii update kazi.
Ni updates markers katika screen.
Zaidi juu ya kwamba katika muda tu.
Wakati huo huo, kuna wachache kazi ndogo katika hapa.
Moja ambayo ni hideInfo ambayo tu kufunga InfoWindow.
Kazi nyingine hapa, ambayo hatimaye itakuwa si muda mrefu sana, kuondoa alama.
Hiyo inaenda kutengua chochote nyongeza zako marker kazi gani.
Na kisha chini hapa ni search.
Na hii ni moja ya kuvutia kwa sababu sisi wameandika JavaScript kificho kwamba ni
kwenda kuzungumza na search.php juu ya server na kupata nyuma baadhi ya majibu.
>> Wewe, bila shaka, mapenzi bado haja ya kutekeleza search.php,
lakini tumekuwa kutekelezwa JavaScript kificho kwamba ni
kwenda kushughulikia kweli kufanya utafutaji na kwamba sanduku maandishi.
Hasa, ilani kwamba kazi hii hapa,
search, haina wito search.php kwa njia kuitwa
kupata JSON, ambayo tuliona katika hotuba.
Na syntax hapa ni tofauti kidogo
kutoka hotuba katika kwamba sisi ni kutumia jQuery kinachojulikana ahadi interface.
Zaidi juu ya kwamba katika spec.
Hii ina maana tu kwa ajili yetu madhumuni sasa kwamba kuna
ni majukumu mawili maalum sisi haja ya simu na dot nukuu
hapa mara baada ya wito kupata JSON.
Moja inaitwa done.
Moja inaitwa kushindwa.
Unaweza kufikiria haya kama mafanikio handler
na kushindwa handler tu katika kesi kitu kitaenda vibaya.
>> Sasa hebu tuangalie mwisho michache ya kazi katika faili hii.
Chini hapa ni kazi kuitwa showInfo, ambayo
inaonyesha info katika moja ya wale kidogo info madirisha kwamba
pops up wakati mtumiaji Clicks marker.
Chini hapa zaidi ni kuwa kazi update
kwamba tuna kutekelezwa kwa ajili yenu.
Ni huamua mipaka ya ramani.
Ni kuratibu GPS ya nini yake kaskazini na kusini magharibi pembe hapa.
Tumekuwa tayari baadhi ya vigezo HDP hapa na kisha kupita yao hatimaye
kwa update.php, ambayo tumekuwa pia kutekelezwa kwa ajili yenu.
Hiyo hatimaye anapata nyuma baadhi JSON kutoka faili inayoitwa update.php
na kisha kuondosha yoyote markers katika screen
na kisha iterates juu ya data hiyo kurudi
kutoka update.php, ambayo tena ni tu JSON safu.
Na kisha hatimaye anaongeza marker kwa kila moja ya maeneo hayo, utunzaji kushindwa
au makosa ambayo huenda vizuri sana kutokea.
>> Sasa tu kukupa ladha ya jinsi wanaweza kwenda juu debugging mradi huu,
kutambua kwamba nilipofungua katika kuendeleza tab hii hapa URL hii,
pset8 / articles.php? geo = 02138.
Sasa, tena, makala kuhusu PHP sisi kutekelezwa kwa ajili yenu
hivyo hii si sana nini wewe utakuwa na kutumia
kwa Debug, lakini badala ya mbinu.
Taarifa kwamba mimi ulichokitafutiza Cambridge ya zip code hapa,
na nimekuwa wamezipata nyuma, kwa kweli, JSON safu ya JSON vitu ndani ya ambayo
ni mbili keys-- kiungo na cheo.
>> Hivyo utendaji huu kazi tayari kwa ajili yenu.
Lakini mbinu hii ya manually kwenda URL kama hii kwa kitu kama
search.php? geo = cambridge au 02138 au chochote user ina typed katika lazima
kuthibitisha mchango mkubwa sana kama wewe mwenyewe, jaribu kufikiri hasa kama au nini
search.php ni kazi au la.
>> Hatimaye basi, una todos chache mbele yenu.
Wewe ni kwenda zana kwanza kwamba kuagiza script kwamba
anasoma katika us.text katika database yako.
Wewe ni basi kwenda haja kutekeleza search.php
ili kutenda hasa kama maalum.
Wewe ni basi atataka kuzingatia scripts.js
na hatimaye kutekeleza wale michache todos,
ikiwa ni pamoja na configure na kwamba template,
kuongeza markers, kuondoa markers, na kisha mwisho, lakini si uchache, moja
kugusa binafsi.
>> Mara una mashup yako ya kazi kabisa kama yetu, lengo katika mkono
ni kwa ajili yenu kuongeza binafsi kugusa na mashup yako,
kama ni aesthetic au kazi.
Kuchukua mashup milele hivyo kidogo kwa ngazi ya pili.
Muda mrefu kama wewe kushinikiza mwenyewe zaidi uzoefu wako na spec yenyewe
na kuchukua moja ya mbinu mpya, hata kama ni tu
kitu aesthetic kama kubadilisha mpangilio wa ramani kwamba unatumia,
wigo kwamba tunatarajia utakuwa kuridhika.
Hiyo basi ni Tatizo Set 8 Mashup.
Stay tuned kwa zaidi katika vipimo na bora wa bahati
kukabiliana na hii, yako ya mwisho CS50 tatizo kuweka milele.
>> [MUSIC kucheza]