Jeffrey Cross
Jeffrey Cross

Цодебок: Забављајте се са Гоогле Аутоцомплете

Аутоматско довршавање је једна од многих интересантних функција Гоогле-а. На пример, ако почнете да куцате "Како да направим" у поље за претрагу, Гоогле представља топ-10 листу ствари за које мисли да можда тражите. Генерисана анализом милиона сличних претрага, ова колективна "мудрост гомиле" може бити урнебесна, трагична или дубоко индикативна за људско стање. Често је све ово одједном.

Ова скица вам омогућава да истражите Гоогле зеитгеист фразе коју одаберете. Ради овако. Када унесете фразу попут "Како да направим", скица ствара 26 варијација додајући свако слово абецеде на крају: "како да направим," "како да направим б," "како да направим ц, ”и тако даље. Затим упита Гоогле за сваку варијацију и додаје десет резултата у покренуту листу. Одговарајући урођеној драми гледања на наде, снове и тежње милиона, 260 резултата представљено је као икона „Звјезданих ратова“:

АПИ за аутоматско довршавање

Аутоматско довршавање покреће релативно једноставан УРЛ који изгледа овако.

хттп://гоогле.цом/цомплете/сеарцх?оутпут=тоолбар&к=кодирани појам за претрагу

За разлику од већине страница које посјећујете, које представљају лијеп ХТМЛ, овај враћа КСМЛ податке који су намијењени за читање стројева. Познат као интерфејс за програмирање апликација (АПИ), ова невероватно моћна техника омогућава програмима да лако комуницирају преко мреже. Без АПИ-ја, морали бисмо да одемо у Гоогле, укуцамо наш израз 26 пута, а онда ручно прикупимо све резултате. АПИ нам омогућава да то урадимо аутоматски.

Да бисте добили основне КСМЛ податке за предлоге "Како да направим", све што треба да урадите је да посетите ову УРЛ адресу:

хттп://гоогле.цом/цомплете/сеарцх?оутпут=тоолбар&к=хов+до+и+маке

Ако погледате "Извор" у свом веб прегледачу, видећете неки КСМЛ који изгледа овако нешто (иако сам форматирао овај пример да би био читљивији):

...

Користићемо обраде КСМЛЕлемент () библиотека да би прочитала ове КСМЛ податке да би креирала текст који се помера.

Подесите Скетцх

Прво, хајде да покренемо скицу. Будући да користимо библиотеку цонтролП5 да бисмо добили фразу упита, мораћете да је инсталирате и конфигуришете. (Ако не, секција цонтролП5 у Цодебоку: Креирање фракталног менађерије ће вам рећи како да је поставите.) Можете узети изворни код скице из оквира испод или из датотеке зетигеист.пде.

Када добијете изворни код у обраду, покрените скицу и откуцајте фразу. После неколико секунди, требало би да видите резултате који почињу да се крећу по екрану а ла Стар Варс. (Ако не унесете никакав текст, скица ће једноставно представити најпопуларније резултате за све опште упите.)

Дисцуссион

Како то ради? Постоји неколико кључних елемената:

  1. Она скупља податке из Аутоцомплете АПИ-ја
  2. Он анализира КСМЛ са КСМЛЕлемент () и сачувајте резултате
  3. Приказује резултате као листу померања

Дакле, хајде да разговарамо о томе како узети податке из АПИ-ја. Обрада лоадСтрингс () функција вам омогућава да ухватите текст било којег УРЛ-а, тако да све што треба да урадимо је да представите АПИ Аутоцомплете са исправно форматираним упитом. Да бисмо то урадили, користићемо Јаву УРЛЕнцодер (запамтите, све што можете користити у Јави је фер игра за обраду) за писање енцоде () која кодира текст унет у усерКуери бок.

Тхе гетСуггестионс () функција користи нашу енцоде () функција за дохват странице и анализу КСМЛ резултата. Функција користи КСМЛЕлемент () објект ради са резултатима. Као и већина КСМЛ библиотека, ова користи синтаксу попут породичног стабла која вам омогућава приступ различитим елементима података. Као што је приказано на следећој слици, подаци о предлогу су први елемент за дете () испод деце основног елемента ().

Будући да је стварни текст помоћ у атрибуту, ми користимо гетСтрингАттрибуте () функција за извлачење података које желимо.

[Напомена: да је ова синтакса другачија од званичне документације, али овај пост на Форуму заједнице обраде, КСМЛЕлемент проблем: функција гетИнт / гетСтринг 'не постоји' даје детаље.] Када смо зграбили текст предлога, ми додаћу га у суггестионЛист Низ листа.

Коначно, вреди мало објаснити како заправо зовемо гетСуггестионс () функције. Као што ћете видети, то се у ствари зове нацртати () метода, која је помало необична. У почетку, покушао сам да истресем свих 26 варијанти упита одједном тако што сам направио низ брзих погодака против аутоматског довршавања. Брзо сам погодио АПИ лимит лимит, што је максимални број пута у секунди које можете користити у било ком тренутку. Поред тога, била је дуга пауза на почетку скице коју нисам волио.

Уместо тога, додао сам тајмер који се зове тимеБетвеенФетцхес тако да је АПИ био позван само сваких 5 секунди. Пошто се текст помера прилично споро, то је омогућило да се резултати временом баферишу, што је довело до бољег укупног изгледа без кршења Гооглеових захтева. Сваки пут када притиснемо АПИ, унапредимо бројач који нам каже које слово абецеде треба додати основном упиту. Када добијемо резултате, ресетирамо тајмер. Ту је и мало логике да се тестира да ли је корисник откуцао нови израз упита и притиснуо финдБуттон.

Други део нацртати () метода управља текстом који се помера. Да бисмо то урадили, користимо променљиву звану и да држите и-координату првог низа у суггестионЛист. Затим пролазимо кроз сваки елемент у листи и пишемо текст на екрану у односу на варијаблу и, који се смањује на сваком пролазу нацртати (). Ово нам даје фини ефекат. (Ми такође центрирамо текст на к-оси, што се ради једноставном формулом.)

Коначно, ефекат Стар Варс лако се постиже помоћу уграђене процесорске библиотеке 3Д графике да би се ротација осе Кс-осе за неколико степени ротирала. Ово је био уредан хак који сам видео на скици Луиса Гонзалеза "Стар Варс" на опенпроцесинг.орг. Препоручујем овај сајт као извор инспирације и идеја.

Више: Погледајте све Андрев-ове ступце Цодебок-а овдје.

У Шупере за каву:


Почетак рада са обрадом Научите компјутерско програмирање на једноставан начин помоћу обраде, једноставног језика који вам омогућава да користите код за израду цртежа, анимација и интерактивне графике. Програмски курсеви обично почињу са теоријом, али ова књига вам омогућава да скочите право на креативне и забавне пројекте. Идеалан је за свакога ко жели да научи основно програмирање и служи као једноставан увод у графику за људе са одређеним вештинама програмирања.

Удео

Оставите Коментар