>> [MUZIKO Ludante]
>> DAVID J. Malan: Saluton.
Ni promenas tra Problemo Serio 8 Mashup,
kiu tuj defias vin al desegni sur elementoj por Google Maps
kun elementoj de Google News kaj piston ilin amase en retejo apleto ke
permesas al uzanto serĉi mapon por novaĵo loka
al specifaj urbetoj, urboj, kaj poŝtkodoj.
Por fari tion, ni tuj integri iuj HTML, CSS, PHP, SQL,
JavaScript kaj tekniko ĝenerale konata kiel AJAX por
krei ĉi mergan uzanto sperto.
>> Ni unue por Google Maps mem.
Tiu, kompreneble, estas eble familiara interfaco.
Sed rezultu ke Google Maps ankaŭ provizas API-- apliko
Programado interface-- tra kio vi povas preni elementojn de Google Maps
kaj integri ilin en viajn proprajn aplikojn.
Ja, laŭlonge de ĉi tiu procezo, vi tuj
trovi paron de adresoj aparte helpema ke
estas menciitaj en la especificación por Problemo Ara 8
specife ĉi ekuzi Gvidi aŭ la Developer Gvidilo
por Google Maps API Versio 3 tiel kiel la Google Maps JavaScript API
v3 referenco, kio estas iom pli arcano legi
sed fakte havas ĉiujn de la malsupra nivelo detaloj pri kio funkcioj aŭ metodoj
kaj objektoj kaj posedaĵoj kaj eventoj efektive venis kun la API,
tre simila en spirito al [inaudible] paĝoj.
>> Nun se ni tuj iri Google News, vi
eble vidi familiara interfaco tie.
Sed rezultu vi povas ankaŭ serĉi Google News por specifaj geografioj
tra HTTP parametro nomita geo.
Fakte, se mi zomi ĝis ĉi tie, vi vidos ke
Mi estas ĉe news.google.com/news/section?geo=02138.
Kaj efektive, se mi zomi el, vi vidos ke mi estas
rigardas paĝo kun tuta aro da esprimas pri Kembriĝo, Masaĉuseco.
>> Dume, se mi vere ŝanĝos la URL ne esti poŝtkodo ŝatas ĉi,
sed iu iom Messier kiel Cambridge, + Masaĉuseco,
kie la alpago estas la vojo vi kodi oni spaceto en URL kaj batis Enter,
vi vidos ke mi reale vidi preskaŭ la saman novaĵon.
Eble ĝi estas iomete malsama ĉar Kembriĝo reale
havas multnombraj poŝtkodoj.
Nun kiel mi scias tion kaj, fakte, kiel mi povus iel
ligi urboj kaj vilaĝoj al poŝtkodoj en kazo mi
volas permesi al la uzanto suprenrigardi ĉu?
Nu, ĝi rezultas ke tie estas afiŝinto tie nomas
geonames.org kiu estas iniciato havi
libere havebla datumbazo de ĉiuj specoj de geografiaj informoj,
ne nur por Usono, sed ankaŭ por aliaj landoj ankaŭ.
Fakte, se mi iras al ĉi URL tie, kiu ankaŭ estas menciita en la problemo aro
especificación, vi vidos ŝin tri Printita de tuta fasko da ZIP dosierojn
iu el kiu povas esti elŝutita de vi.
Fakte, por tiu problemo aro vi tuj elŝuti us.zip.
Nun ene de la dosiero, estas tuta faskon da datumoj en teksto formato.
La dosieroj estas tre simila al CSV-- Komo Disigita Valoroj file--
sed efektive uzas pestañas por Demarco kampoj.
Nun, dume, se vi rigardas tie en kio mi reliefigis,
la kampoj en la dosiero iras esti aĵoj kiel lando kodojn,
bildkarto kodoj, loknomoj, kaj tiam, en iu formo
aŭ alia, statoj kaj graflandoj, komunumoj, kaj pli.
Fakte, mi jam elŝutita dosiero anticipe.
Lasu min kaj malfermu ĝin here-- us.text-- kaj, fakte, vi
vidu se mi rulumu malsupren al linio 16.792 vi vidos kelkajn rekordojn por Kembriĝo,
Masaĉuseco kaj ĝiaj diversaj poŝtkodoj.
Kion vi vidas ankaŭ tie estas la graflando, iuj numeroj, kiujn mi faras ne vere
kompreni, sed ankaŭ ĉiuj la vojo dekstre,
iuj GPS coordinates-- latitudo kaj longitudo.
Tiu estas granda ĉar unu el la karakterizaĵoj de Google Maps API
estas la kapablo trovi kie vi estas geografie
en terminoj de GPS koordinatoj.
>> Nun ni komencos elkompreni kiel komenci ligi tion kune.
Ni donis al vi tutajn faskon de dissendo kodo,
tiel kiel MySQL datenbazo.
Fakte, se mi elŝiri phpMyAdmin havante Jam importitaj, kiel vi baldaŭ faros,
pset8.SQL, vi vidos MySQL tablo kiu aspektas kiel ĉi tiu, ID kampo, lando
kodo, poŝtkodo, loko nomon kaj pli.
La tipoj de ĉiu el tiuj kolumnoj Mi derivita simple
legante la readme.text file tie ke specifita
ĉu kampo estas entjero, aŭ varchar aŭ similaj.
>> Do ni kreis tiun tablon por vi kaj donis al vi la SQL komandojn
ekzekuti krei ke tablo en via propra datumbazo,
sed estas vere neniu datumo en ĝi ankoraŭ.
Pli ĝuste, vi estas iranta devi elŝuti us.zip aŭ ajna lando zip
dosiero de tiu URL tie.
Kaj tiam vi tuj devas skribi unu komandlinio skripto en PHP tio
tuj malfermi tiu teksto fajliloj, persisti super liaj linioj,
kaj tiam por ĉiu el tiuj linioj fari insert
en kiu metas tablo en via MySQL datenbazo.
Do fine de tiu procezo, Vi forkurigas ke skripto finfine
nur unufoje en teorio.
En realo vi probable kuri lin faskon da fojoj
samtempe provas ripari diversaj cimoj.
>> Finfine, vi estas iranta havi vere grandan datumbazon kun miloj
kaj miloj de geografia vicoj.
Tiam vi estas iranta meti tiun importado skripto flanken iam ĝi laboras
kaj via datumbazo estas bela kaj ĝentila, kaj tiam
vi tuj pluiri al reale realiganta la mashup mem.
La mashup tuj serĉos iom io tiamaniere.
Je mashup.cs50.net, ni havi personaro solvo
ke aspektas iom io tiamaniere.
Ja, se mi alklaku ĉi ĵurnalo ikono por Kembriĝo, Masaĉuseco,
vi vidos ŝpinita Ikono mallonge kaj poste
ordigita listo, oni bula listo de artikoloj
rilataj al Kembriĝo, Masaĉuseco.
Se mi alklaku Charlestown, Masaĉuseco,
Mi vidos la sama por tiu urbo.
Kaj Se mi alklaku Watertown, Massachusetts,
tie eble ne ajnan novaĵoj de el Watertown,
tial vi vidos ion kiel malrapida novaĵoj tago.
>> Nun, dume, ĉe supre maldekstre estas iu familiara Google Maps kontroloj
lasi vin malzomi, pato supren, malsupren, forlasis, kaj dekstra,
sed ankaŭ Serĉilo kiu ni metas tie.
Do se mi serĉu, sincere, la sola alia poŝtkodo mi scios,
90210, ni fakte vidos Beverly Hills, Kalifornio.
Kiam klakis ĝi kondukas min al Kalifornio kaj tuta aro da
novaĵoj pri Beverly Hills.
Nun rimarki, ankaŭ, kion okazis tie.
Se mi ĉi tempo serĉo por 02138 aŭ eĉ Kembriĝo komo Masaĉuseco aŭ iuj
Varianto gxiajn vi ricevas iom autocompletar menuo.
Nun tiu estas uzanta plugin por biblioteko nomita jQuery,
kaj ke kromprogramon nomata typeahead.
Ni simple tralegu la dokumentado,
elŝutita la .js-aj file integrita en la dissendo kodo por ke vi
finfine povas skribi la kodon kiu plenigas tiu menuo menuo kun la aŭtomata
selektadojn aŭ la auto sugestojn.
>> Nun la distribuo kodo, kvankam, ke vi ricevis ne faras preskaŭ tiel.
Vi akiras la Google Mapo enigita, kaj vi havos la kontroloj la supro lasis,
kaj vi ricevos la Serĉilo.
Sed se mi tajpas ion kiel 02138, mankas lokoj troviĝas ankoraŭ.
Por ke tuj estos unu el niaj celoj ĉi tie.
Cetere, se vi paŝon reen kaj rigardi la mapo mem,
ne estas novaĵo kiun ajn.
Eĉ se mi klakas kaj trenas, neniu markiloj reale
aperas por novaĵo ĉar tiu defio estas lasita por vi ankaŭ.
>> Ni rigardu do ĉe la dissendo kodo.
Kiam vi elŝutis pset8.zip kaj Unzipped ĝi
En viajn vhost dosierujo en la CS50 Appliance,
vi vidos tiujn adreslibroj tie ene.
Bin-- kio ĝenerale signifas duuma por ruleblan programs--
inkluzivas, kiel en pset7, iuj PHP dosierojn kiuj aliaj dosieroj inkludas,
tiam publiko, kiu estas la dosierojn kiuj bezonas
esti publike alirebla al uzanto per retumilo.
Ni rigardu en la bin dosierujon, kaj ni
vidas ke estas dosiero tie jam nomita Importi.
Se ni malfermas ĉi kun gedit, ni vidos kiu, bedaŭrinde, ne estas multe
tie.
Ĉiuj kiu estas tie, kvankam, Estas shebang ĉe supro
kiu precizigas kion interpreter-- en tiu kazo PHP--
uziĝu por fakte ekzekuti ĉi tiu dosiero.
Sed tiam kie diras TODO estas kie vi estas
tuj bezonos skribi iun kodon kiu probable postulas la agord
dosiero kiu estas en la inkludas dosierujon kiel ni faris antaŭe kun PHP dosierojn.
Kaj tiam vi tuj devas iel malfermi
us.text kiun vi supozeble esti Unzipped jam.
Tiam vi estas iranta devi persisti super la liniojn en tiu dosiero,
eble uzante kelkajn el la funkcioj sugestis en la specifo.
Tiam enigi ĉiu el tiuj linioj en MySQL datenbazo
uzante la konsulto funkcio, kiun ni denove havigis vi with--
aŭ almenaŭ varianto Sur functions.php,
kiun ni vidos en nur momento.
>> Nun ni fermos importado kaj reiri al nia dosierujo kaj tiu tempo eniru en
inkluzivas.
Kaj se mi faras ls tie, vi vidos tri dosierojn ŝatas sufiĉe Problemo Ara 7.
Kaj ni prenu rapidan rigardon, ekzemple, ĉe config.php.
En tie, estas malpli linioj ol antaŭe, kaj tio
ŝajnas tiu dosiero inkludas constants.php kaj functions.php.
Ni uzas iomete malsamajn tekniko ĉifoje al reale
specifi tiuj dosieroj relativa al la aktuala dosierujo __ DIR__
reprezentas ajn dosierujo ĉi dosiero, config.php, estas mem en.
Do ĉi tiu estas pli eksplicita vojo de preciziganta
kion aliaj dosieroj vi volas postuli.
>> Nun se mi fermos ĉi dosieron kaj malfermi constants.php anstataŭe
vi vidos dosiero tre rememorado al Problemo Serio 7 estas tiel, kvankam
kun malsama datenbazo nomita pset8.
Fine, en functions.php, ni vidos nur unu funkcio
tiu tempo nomita mendo.
Tio estas preskaŭ la sama krom ni manipuli eraroj ĉifoje iomete
malsame, sed estas uzado estas la sama kiel en problemo starigis sep.
>> Nun ni reiru en nian pset8 dosierujo, iru en publiko, kaj en tie
se mi faras ls, vi vidos this-- articles.php, index.html, search.php,
kaj update.php-- ĉiuj dosieroj.
Kaj tiam la css tiparoj, img, kaj js dosierujo ŝatas sufiĉe pset7.
>> Ni rigardu index.html, kio estas
tuj estos vere la enirpunkto al la smashup.
Nun en index.html, vi vidos tutan faskon de ligilo elementoj en la kapo,
specife, por bootstrap por nia propra CSS sekvita de amaso de skripto
etikedoj por aĵoj kiel la mapoj, API mem, speciala markilo kun stampo
utileco kiun ni menciis en la specifo estas disponebla al vi,
jQuery mem, bootstrap mem, kaj alia biblioteko
nomata substreko kiu ni raportas en la specifon.
Underscore.js kiel jquery.js estas JavaScript biblioteko
kiu havas tutan faskon da funcionalidad ke multaj homoj en la mondo deziro
ekzistis en JavaScript mem.
Do ĉiuj el tiuj estas fakte sufiĉe popularaj.
Ni ankaŭ menciis typeahead kiu estas la biblioteko kiun
faras ke autocompletar menuo kaj fine ligon al nia propra Javascript.
>> Dume, kaj eble Bonŝance tiu mashup
Estas antaŭenpuŝita de relative malmulte HTML ĉi tie ĉe la malsupro.
Rimarku ke ni tajpis div en nia korpo de klaso-ujo fluida.
Tiu, po bootstrap La dokumentado, ĝuste
signifas ke ĉi div tuj plenigos la vidujo aŭ la retumilo fenestro plene.
>> Dume, sub tiu ni havas div ke'S malfermiĝis kaj tuj fermis
kun la unika ID de mapo kanvaso.
Tiu nun estas de Google Mapoj dokumentado
por lia API, per Mi simple bezonas havas malplenan div en kiun enmiksas,
finfine, reala Google Maps.
Sed pli sur tiu en nur iom.
>> Fine, ekzistas formo ene de ĉi tie kiuj
implementa la tekstujo supren supro lasita en nia interfaco por serĉado.
Rimarku ke ni uzis iom de bootstrap
tie too-- aĵojn kiel formo-inline kaj formo-grupo.
Ni donis la eksa unika ID de formo.
Kaj tiam, finfine, mi efektive havas enigaĵoj tipo, kiuj estas sufiĉe konataj,
kies ID estas q.
Nur konvencio.
Q query-- povus havi vokitaj nenion.
Kaj tiam la lokokupilo, dume, estas urbo, ŝtato,
kaj poŝtkodo kion vi eble memoras vidante en nia mashup demo antaŭe.
Ni fermas ĉi tiun dosieron.
>> Nun rigardu la PHP dosierojn atendi kaj poste la JavaScript dosierojn.
En nia PHP dosierojn, ni jam implementado por vi,
ekzemple, ĝisdatigoj.
Update.php-- ni ne elspezi grandegan kvanto de tempo sur here-- en malmultaj vortoj
estas la dosiero kiun nia JavaScript kodon tuj
kontakti tra AJAX ke nesinkrona tekniko tio
konstruita en JavaScript tiuj tagoj tio tuj permesos nin al demandi update.php
por pliaj informoj.
>> Specife, ĉiutempe la uzanto trenas la mapo
aŭ realigas serĉon kiu saltas la uzanto al alia ubicación,
nia kodo JavaScript, kiel ni baldaŭ vidos, estas
tuj nomos update.php kaj peti 10 aŭ tiel markiloj
ene la vidujo bazita sur la GPS koordinatoj
de la supro kaj malsupro anguloj de tiu mapo.
Ni povas tiam repoblar la mapo nun ke la uzanto movis la ekrano en celo
vidi 10 probable nova markiloj por malsamaj vilaĝoj.
Dume, tiu dosiero estas finfine tuj ekzekuti SQL query
kontraŭ nia datumbazo tablo nomitaj lokoj kiuj
tuj revenos tiuj 10 aŭ malpli lokojn.
>> Dume, en articles.php, estas alia file ni skribita en lia totalo.
Ĝi estas tre simila en spirito al Problemo Serio 7 La lookup funkcio,
kiuj kontaktis Yahoo Financoj por vi.
Ĉi tiu dosiero kontaktoj Google Novaĵoj por vi, finfine kaptante
maŝino-legebla version-- ion
nomita RSS format-- de la novaĵo por Kembriĝo aŭ Beverly Hills
aŭ kion ajn urbon vi serĉis por funkcio de tiu geoparameter.
Ni analizi kiujn RSS, kiuj estas nur tipo de markado lingvo XML nomita,
kaj tiam ni efektive redoni ĝin al via retumilo
kaj al via kodo JavaScript, specife, en formato nomita
JSON, JavaScript Objekto Skribmaniero.
Nun vi vidos en la specification-- Ni atentigas vin
ĉe kiom vi povas fakte vidi iuj de la JSON venonta back--
ke tiu funcionalidad finfine konsistas el popoli tiuj popup menuoj tiel
ke kiam vi klakas sur markilo en la mapo
vi fakte vidi tutan faskon de kugloj, el kiuj ĉiu
ligilojn al artikolo.
>> Nun ni rigardu unu lasta PHP dosiero kiu, feliĉe, ne
havas multe irante on-- nur iom granda TODO.
Ĝuste nun tiu dosiero deklaras tabelo nomitaj lokoj.
Kaj tiam finfine prints ke tabelo en JSON format--
bela-videbligi ĝin ĝuste por ke aferoj estas pli facilaj por elpurigi.
Bedaŭrinde, en la mezo estas ĉi TODO,
kiu petas vin esplori la datumbazo por lokoj kiuj kongruas al geo HTTP
parametro.
>> Kaj ĝuste tiu tuj esti unu el viaj challenges--
implementar ĉi tiu funcionalidad tie por ke kiam vi kontakti tiun dosieron per
URL kiel serĉo. php? geo = io, via kodo finfine resendas JSON
tabelo de ĉiuj de la lokoj en via datumbaza tabelo kiuj kongruas ke enigo.
Do se la uzanto tipoj en Cambridge, vian dosieron tie search.php
devus finfine resendas JSON tabelo por ĉiu de la partioj por Kembriĝo,
kiu povu esti en Masaĉuseco sed povus esti eĉ aliloke.
>> Laste, ni rigardu du dosierojn, kiuj estas statikaj ultimately--
vian CSS-dosieron kaj via JavaScript dosiero.
Se mi iras al nia CSS dosierujon, tie estas amaso de dosierojn tie,
sed plejparte ili estas bibliotekoj.
Mi iras por preni rigardon, specife, en styles.css,
kiu estas nia propra tutmonda CSS tio tuj stylize tiu tuta mashup.
Mi lasos ĝin al vi legi tra la komentojn ene difinitaj, sed, en malmultaj vortoj,
tiu estas la CSS ke certigu ke niaj mashup, implicite el la skatolo,
aspektas precize la vojon ni volas it-- kun la mapo plenigante la vido havenon
kaj kun la serĉo bukso supren supre maldekstre.
Ni ankaŭ prenis la liberecon de stylizing ke typeahead menuo
menuo iomete tiel.
>> La plej grava dosiero eble por tiu problemo aro
Estas ĉi tiu lasta, scripts.js.
Ene de via js dosierujo estas eĉ pli dosierojn.
Ĉiuj ili estas biblioteko dosierojn krom ĉi tiu, scripts.js.
Se ni malfermas ĉi supre, ni prenos nian lasta ĝiras tra la funkcioj kiuj
estas konstruitaj en ĉi dosiero por vi kaj atentigi
al la todos kiuj kuŝas antaŭe.
>> Ĉe la supro de ĉi tiu dosiero: Estas tri tutmondaj variabloj.
Unu por mapo, kiu tuj esti referenco al nia Google mapo.
Vi povas pensi pri tio ia kiel puntero.
Dume, ni havas alia malloka variablo
nomata info, kiu aperas kiel stokante la reveno valoro de alvoko
por nova google.maps.InfoWindow.
Ĝavoskripto subtenas celojn kiuj estas tre simila en spirito al Struts.
Kaj kio estas tiu linio por niaj celoj estas faranta
kreas novan info fenestro en memoro kaj tiam
konservante ĉirkaŭ referenco vivan en variablo nomata Informoj.
Kaj en inter tiuj, dume, estas kio aperas
esti malplena Ĝavoskripto tabelo nomis markiloj.
Ĉiuj el tiuj ĵurnalo ikonojn, aŭ vi povus elekti alian piktogramon en aro,
tuj estos stokitaj fine en ĉi tabelo
tiel ke ni povas tre facile aldoni al la mapo kaj forigi ilin de la mapo.
>> Nun ni rulumu malsupren iomete kaj Whiz
tra la kodo ke tuj estos ekzekutita kiam la DOM aŭ dokumenton
objekto modelo aŭ la paĝo mem estas preta.
Memoru ke ĉi tiu sintakso tie simple precizigas
ke la sekva kodo estu ekzekutita nur
kiam la retumilo finis ŝargado ĉio alia.
>> Ni unue deklari amaso de stiloj,
kiu finos stylizing la mapo kiel po la specifon.
Ni tiam deklari tuta aro da ebloj,
kio ankaŭ agordi la Google mapo kiun ni estas al embed.
Ni do uzas iom de jQuery kodo, kiu estas klarigita en iom pli detale
en la specifon, ekpreni ke elemento, mapo-kanvaso
ke ni tiel unike identigitaj.
Kaj tiam ĉi tiu linio tie estas kio ŝajnas magie transdoni nin
Google mapo ene de nia propra apliko,
stokante referenco arangxajxo en tiu variablo nomata mapo.
>> Fine, jen ni registru kio nomiĝas aŭskultanto.
Pensu back-- maniero, modo back-- al semajno nulo en CS50
kiam ni rigardis Scratch kaj lia apogo tra promeni
tra por aĵoj nomitaj eventoj kaj elsendojn.
Vi eble ne uzis ĝin mem, sed estas
mekanismon per kiu oni retumilo en tiu kazo
povas akiri nian atenton kiam ĝi estas pretas reale ekzekuti iuj kodo.
En tiu kazo, ĝi estas tuj aŭskultos al la mapo por evento nomita sencela.
Tio signifas ke la navegador havas finita ŝarĝante la Google mapo.
Ĉe tiu punkto funkcio nomita configure devus finfine
esti ekzekutita.
Domadministranto, agordi, ni vidos, estas skribita por ni.
>> Nun ĉi tie estas funkcio ke, bedaŭrinde,
estas nur TODO add markilo.
Per la specifo. Vi tuj bezonas skribi la kodon kiu vere
Aldonas marker-- ĉu ĝi aspektas kiel ĵurnalo, aŭ dikfingro Tack,
aŭ io else-- al la Google mapo.
Ĉi tie nun estas ke funkcio nomata configure.
Mi lasos ĝin al vi legi tra ĉi pli detale,
sed rimarkas ke ni aldonu faskon pli Aŭskultantoj
tiel ke ni povas ekzekuti kodo kiam la uzanto klakas sur kaj trenu la mapo.
Ni ankaŭ havas kodon en ĉi tie, ke inicializa ke typeahead kromaĵo
por ke la menuo menuo efektive funkcias.
>> Sed ni enfokusigi nur kelkaj lokoj ene difinitaj.
Specife, ĉi fari ĉi tie.
Mi cedu al la reta dokumentado kaj la specifo
por kiel plenigi ĉi TODO.
Sed en malmultaj vortoj, ĉi biblioteko typeahead permesas pasi
en kio ĝenerale konata kiel ŝablono, kiu havas iujn variablo anstataŭiloj
tre simila en spirito al printf la%. * s.
Sed en ĉi tiu kazo, la ŝablono por la spec
permesas vin specifi kio variablojn vi volas
injekti de datumoj kiu estas veni reprenos iu kiel PHP
dosierojn kiujn vi skribis kiuj elsendas JSON eligo.
>> Nun malsupren tie rimarkos ke ni estas aŭskultante por typeahead selektadoj
kiam la uzanto reale efektivigas Serĉo kaj selektas valoro.
Jen kiel ni estas reale tuj aŭskultos por ke
kaj ekzekuti iun kodon kiel rezulto.
Tiam ni daŭre agordi la mashup malmulta.
Kaj, fine, ni nomas tiu funkcio ĝisdatigo.
Ĝi ĝisdatigas la markiloj sur la ekrano.
Pli sur tiu en nur momento.
Dume, ke estas kelkaj malgrandaj funkcioj en ĉi tie.
Unu el kiuj estas hideInfo kiu simple fermas la InfoWindow.
Alia funkcio ĉi tie, kiu fine ne estos tro longa, forigu markiloj.
Tio tuj malfari ajn via add markilo funkcio faras.
Kaj poste malsupren tie estas serĉo.
Kaj ĉi tiu estas interesa ĉar ni skribis la kodo JavaScript tio
tuj parolos al search.php sur la servilo kaj reiri kelkaj respondo.
>> Vi, kompreneble, ankoraŭ bezonas implementar search.php,
sed ni implementado la JavaScript kodon tio
tuj manipuli fakte agante serĉoj de tiu teksto skatolo.
En aparta, avizo ke tiu funkcio ĉi tie,
serĉo, ĝi nomas search.php per metodo nomata
akiri JSON, kiun ni vidis en prelego.
Kaj la sintakso tie estas iom malsama
el prelego en kiuj ni uzas jQuery tn promeso interfaco.
Pli sur tiu en la specifon.
Ĉi simple signifas por nia intencoj nun ke ekzistas
Estas du specialaj funkcioj ni bezonas nomi kun skalara skribmaniero
tie tuj post nomante akiri JSON.
Unu nomiĝas farite.
Unu nomiĝas malsukcesos.
Vi povas pensi pri ĉi tiuj kiel la sukceso traktilo
kaj la fiasko traktilo simple en kazo iu eliras malbone.
>> Nun ni rigardu la lastan kelkaj funkcioj en ĉi tiu dosiero.
Malsupren tie estas funkcio nomata showInfo, kiu
montras info en unu el tiuj iom info fenestroj kiuj
Popoj supren kiam la uzanto klakas markilo.
Malsupren tie plui estas ke ĝisdatigo funkcio
ke ni estas implementado por vi.
Ĝi determinas la limojn de la mapo.
Kio estas la GPS koordinatoj de lia nordorienta kaj sudokcidenta anguloj tie.
Ni preparis kelkajn HDP parametroj tie kaj tiam preterpasis ilin finfine
al update.php, kiun ni ankaŭ implementado por vi.
Tio finfine ricevas reen iuj JSON de la dosiero nomata update.php
kaj tiam forigas ajnan markiloj sur la ekrano
kaj tiam ripetas super la datumoj kiujn la veni reen
el update.php, kiu denove estas nur JSON tabelo.
Kaj tiam finfine aldonas markilo por ĉiu de tiuj lokoj, manipulante fiasko
aŭ eraroj kiuj povus tre bone okazi.
>> Nun ĝuste doni al vi guston de kiel vi povus iri pri elpurigante ĉi tiu projekto,
rimarkas ke mi malfermis en antaŭi ĉi langeto tie al ĉi URL,
pset8 / articles.php? geo = 02138.
Nun, denove, artikoloj pri PHP ni implementado por vi
tiel ĉi tio ne estas tiel kio vi estos uzanta
al elpurigi, sed prefere la tekniko.
Avizo ke mi serĉis Cambridge poŝtkodo tie,
kaj mi alvenas reen, efektive, JSON tabelo de JSON celoj ene de kiu
Estas du keys-- ligilon kaj titolon.
>> Do tiu funcionalidad laboras jam por vi.
Sed tiu tekniko de permane irante al URL ŝatas ĉi por iu kiel
search.php? geo = Cambridge aŭ 02138 aŭ ajn la uzanto tajpita en devus
pruvi valoregaj kiel vi, mem provi elkompreni ĝuste ĉu aŭ kial
search.php laboras aŭ ne.
>> Fine do, vi havas kelkaj todos antaŭ vi.
Vi tuj unuaj Implementa ke importado skripto kiu
legas en us.text en vian datumbazon.
Vi tiam tuj bezonos implementar search.php
tiel ke ĝi kondutas precize kiel specifis.
Vi tiam tuj volas enfokusigi sur scripts.js
kaj finfine implementan tiuj paro de todos,
inkludante por configure kaj ke ŝablono,
aldoni markilojn, forigu markiloj, kaj tiam daŭri, sed ne laste, unu
persona tuŝo.
>> Unufoje vi havas viajn mashup laborista tute kiel la nia, la golo en mano
estas por vi aldoni personan tuŝi al via mashup,
ĉu ĝi estas estetikaj aŭ funkciaj.
Prenu la mashup iam tiel iomete al la sekva nivelo.
Tiel longe kiel vi pelas vin preter vian konatecon kun la specifo mem
kaj repreni unu tekniko novan eĉ se ĝi estas nur
io estetika kiel ŝanĝanta la aranĝo de la mapo kiu vi uzas,
la medio kiun ni atendas estos kontentigita.
Tio do estas Problemo Ara 8 Mashup.
Sekvu por pli en la especificación kaj bonŝancon
pritrakti tion, via lasta CS50 problemo starigis eterne.
>> [MUZIKO Ludante]