Hacker News

Wan intaraktiv intro to kwadtri dɛn

Kɔmɛnt dɛn

20 min read Via growingswe.com

Mewayz Team

Editorial Team

Hacker News

Wetin Mek Kwadtri Impɔtant Mɔ pas aw Yu Tink

| Kwadtri na wan pan dɛn elegant data strɔkchɔ dɛn we bɔku pipul dɛn nɔ de ɛva yɛri bɔt, yet dɛn kwayɛt wan pawa sɔm pan di mɔs pefɔmɛns-kritikal sistɛm dɛn na di mɔdan softwe — frɔm vidio gem kɔlishin ditekshɔn to jiografik infɔmeshɔn sistɛm dɛn we de prosɛs bɔku bɔku spatial kwɛstyɔn dɛn pan sɛkɔn. We yu ɔndastand aw dɛn de wok, dat nɔ jɔs de mek yu bi bɛtɛ divɛlɔpa; i de chenj fכndamεntli aw yu de tink bכt כganayz εn sכch tru spatial data. If yu de bil wan delivri lɔjistik pletfɔm, wan lokeshɔn-bɛs analitik dɛshbɔd, ɔ jɔs de tray fɔ rɛnd 50,000 data pɔynt dɛn na wan kanvas we yu nɔ krash di brawza, kwadtri dɛn de gi wan sɔlvishɔn we ɔl tu intuitiv ɛn remarkably efishɔnal.

Wetin Eksaktli Na Kwadtri?

Kwadtri na tik data strɔkchɔ usay ɛvri intanɛnt node gɛt ɛksaktɔli 4 pikin dɛn, ɛvri wan de riprizent wan kwadrant pan tu-dimɛnshɔnal spɛs. Imajin se yu tek wan skwea rijyɔn ɛn sheb am to 4 ikwal skwea dɛn — nɔtwɛst, nɔt-ist, sawtwɛst, ɛn sawt-ɛst. Yu kin sheb ɛni wan pan dɛn skwea dɛn de mɔ to 4 ɔda skwea dɛn, ɛn so de go, rikɔrsiv wan, te yu rich sɔm kɔndishɔn fɔ stɔp. Dat stɔp kɔndishɔn na tipikli ɔl tu maksimal dip ɔ trɛshɔld fɔ ɔmɔs data pɔynt wan singl no kin ol bifo i nid fɔ split.

Di fayn fayn tin fɔ dis we fɔ du tin de pan in adaptiv nature. εria dεm we dense wit data pכynt dεm kin gεt sכbdivayd insay fayn εn fayn sεl dεm, we spays εria dεm de stil lεk big, כndivayd rijyכn dεm. Wan kwadtri we de kip di say dɛn we 10,000 kɔfi shɔp dɛn de ɔlsay na wan kɔntri go mek dip, ditayl sabdivishɔn dɛn oba Manhattan — usay 300 shɔp dɛn kin de insay sɔm skwea kilomita — pan ɔl we i go kip bɔku bɔku say dɛn na rural Wayoming as wan, nɔ split node we gɛt ziro ɔ wan pɔynt. Dis adaptiv rεsכlushכn na in de mek kwadtri dεm so pawaful we yu kכmpεr am wit flat grid, we go west bכku bכku mεmכri pan εmpti sεl dεm.

Di kɔnsɛpt na Rafaɛl Finkel ɛn J.L. Bɛntli bin fɔs diskrayb am insay 1974, ɛn frɔm da tɛm de i dɔn branch to sɔm difrɛn we dɛn: pɔynt kwadtri de kip wan wan kɔdinɛt pe, rijɔn kwadtri de riprizent spatial eria (yuzful fɔ imej kɔmpreshɔn), ɛn ɛj kwadtri handel layn ɛn kɔv. εvri vεryכnt de optimiz fכ difrεn yus kes dεm, bכt di kכr rεkכrsiv sabdivishכn prinsipul de stil di sem akraos כl dεm.

Aw Insɛshɔn ɛn Kwɛri de Wok

Fɔ put pɔynt insay kwadtri, yu bigin na di rut no ɛn disayd uswan pan di 4 kwadrant dɛn di pɔynt fɔdɔm insay. Dɔn yu kin rikɔs insay da kwadrant de in pikin no ɛn ripit di prɔses. If yu rich wan lif node we nɔ pas in kapasiti (dɛn kin sɛt am to 1 ɔ 4 poɛnt), yu jɔs de kip di pɔynt de. If di lif dɔn ɔlrɛdi gɛt kapasiti, i kin split to 4 pikin dɛn, sheb di pɔynt dɛn we i dɔn gɛt bak bitwin dɛn, dɔn i kin put di nyu pɔynt insay di pikin we fit am. Dis prɔses tipikli kɔmplit insay O(log n) tɛm fɔ wan balans distribyushɔn, pan ɔl we wɔs-kɛs sɛnɛriɔ wit ayli klasta data kin dɛgrad pefɔmɛns.

Rɛnj kwɛstyɔn — fɔ fɛn ɔl di pɔynt dɛn insay wan givɛn rɛktangul eria — na usay kwadtri dɛn kin rili shayn. Insted fo chek evri single point na yu dataset (wan O(n) opareshon), yu stat na di rut en aks wan simpul kweshon na each node: dis node in boundary intasekt wit mi search retangle? If nɔto so, yu prun di ɔl sabtri — we kin mek yu nɔ gɛt bɔku bɔku pɔynt dɛn we yu nɔ tink bɔt insay wan kɔmpiashɔn. If intasekshɔn de, yu kin rikɔs insay di pikin dɛn we gɛt fɔ du wit am. Point dɛm we dɛn fɛn na lif no dɛm we de fɔdɔm insay di sɔch rɛktɛnj kin ad to di rizɔlt sɛt.

Tink wan prɛktikal ɛgzampul: yu gɛt wan dataset we gɛt 100,000 kɔstɔma dɛn ples ɛn yu nid fɔ fɛn ɔlman we de insay 5 kilomita rayus we nyu stoa opin. Wan brut-fɔs aprɔch nid fɔ 100,000 distans kɔlkyulɛshɔn. Wan kwadtri we dɛn dɔn bil fayn fayn wan kin ridyus dat to jɔs 200-500 chɛk bay we i kin pul ɔl di jiografik rijyɔn dɛn kwik kwik wan we klia wan nɔ de ɔvalap wit di say we yu de fɛn. Dat na pefɔmans improvement we 200x ɔ mɔ — di difrɛns bitwin wan kwɛstyɔn we tek 800 milisekɔnd ɛn we tek 4 milisekɔnd.

Rial-Wɔl Aplikeshɔn dɛn we De Rɔn pan Kwadtri

Di aplikeshɔn dɛm fɔ kwadtri dɛn de go fa fawe pas akademik kɔmpyuta sayɛns. Dɛn na fawndeshɔn fɔ sistɛm dɛn we bɔku bɔku pipul dɛn kin yuz ɛvride, bɔku tɛm dɛn nɔ kin no.

    we dɛn kɔl
  • Mapping ɛn nevigishɔn: Savis dɛn lɛk Google Maps ɛn Mapbox de yuz tayl sistem dɛn we tan lɛk kwadtri fɔ sav map imej. Ɛni zum lɛvɛl de sɔbdivayd tayl dɛn to 4 pikin dɛn, na dat mek map tayl kɔdinɛt dɛn de fala wan z/x/y patɛn we de mirɔ kwadtri adrɛsin. We yu zum insay wan siti blɔk, na di rilevɛns ay-rɛzolushɔn tayl dɛn nɔmɔ de lod — di ɔda pat na di wɔl de de na kɔs rɛsɔlɔshɔn.
  • Kɔlishin ditekshɔn na gem: Gem injin dɛn de yuz kwadtri (ɛn dɛn 3D kɔmpin, ɔktri) fɔ no fayn fayn wan we tin dɛn kɔliyd. Insted fɔ tɛst ɛvri pe fɔ tin dɛn — wan O(n2) nɛtmɛr wit 1,000 ɛntiti dɛn na skrin — di injin de jɔs chɛk tin dɛn we de sheb di sem kwadtri sɛl, we de ridyus di chɛk to wan nɔmba we pɔsin kin manej.
  • Imej kɔmpreshɔn: Rijyɔn kwadtri kin kɔmprɛs imej bay we dɛn de jɔyn piksɛl dɛn we de nia dɛnsɛf we de sheb di sem kɔlɔ dɛn to big blɔk dɛn. dis na di besis fכ sכm kכmpreshכn algכritm dεm we de achy 10:1 kכmpreshכn rεshכn we de mεnten vishכnal fideliti na εria dεm we lכw ditel.
  • Flit manejmɛnt ɛn lɔjistik: Dilivri kɔmni dɛn de yuz spatial indeks fɔ mach drayva dɛn wit ɔda ɔda dɛn we de nia dɛn insay rial tɛm. Wan kwadtri de mek wan dispatch sistɛm ansa di kwɛstyɔn wantɛm wantɛm "us 5 drayva dɛn de nia dis pik-ap ples?" akɔdin to wan grup we gɛt bɔku bɔku motoka dɛn we de ɔpdet dɛn GPS pozishɔn ɛvri sɔm sɛkɔn.
  • Jiospatial analitiks: Plɛtfɔm dɛn we de agrɛg lokeshɔn-bɛs biznɛs data — kɔstɔma dɛnsiti map, sɛl teritɔri ɔptimayzeshɔn, stoa plesmɛnt analisis — de abop pan spatial data strɔkchɔ fɔ mek dɛn kwɛstyɔn ya intaraktiv pas fɔ batch-prosɛs.

Di ki insayt bihayn kwadtri na dat mɔs spatial kwɛstyɔn dɛn nɔ nid fɔ ɛgzamin mɔs pan di data. Bay we yu ɔganayz spɛs hayarkik wan, yu de transfɔm brut-fɔs sɔch to targeted traversals — tɔn sɛkɔn to milisekɔnd ɛn mek rial-taym intaraktiviti pɔsibul ivin wit masiv datasɛt.

we yu kin yuz

Bil wan Kwadtri Frɔm Skrach

Fɔ implimɛnt wan besik kwadtri na sɔprayz we pɔsin kin aproch, ivin fɔ intamɛdiet divɛlɔpa dɛn. di kor strכkchכ nid jכs fכ kכmכpכnt dεm: wan bכnda (di rεktangul εria we di no de kכba), wan kapasiti (maksimכm pכynt bifo split), wan pכynt εri, εn rεfrεns to fכ child no dεm (initially null). Di ɔl insɛt fɛnshɔn kin rayt insay ɔnda 30 layn dɛn fɔ kɔd insay bɔku langwej dɛn.

Di split opεreshכn de mek fכ nyu pikin no dεm, εvri wan de kכba wan kכdrant pan di mama εn papa in bכnda. Fɔ mama ɔ papa we gɛt bɔda (x, y, wit, ayt), di nɔt-ist pikin kin gɛt (x + wit/2, y, wit/2, ayt/2), di nɔtwɛst kin gɛt (x, y, wit/2, ayt/2), ɛn so de go. Afta dɛn dɔn split, dɛn kin sheb di pɔynt dɛn we dɔn de bak to di pikin dɛn we fit. Wan kɔmɔn mistek na fɔ fɔgɛt fɔ klia di mama ɔ papa in pɔynt arenjmɛnt afta dɛn dɔn sheb am bak, we kin mek dɛn dupliket di rizɔlt dɛn we dɛn de aks kwɛstyɔn.

Fɔ prodakshɔn yuz, sɔm ɔptimayzeshɔn dɛn impɔtant. We yu sɛt di node kapasiti to 4-8 poɛnt tipikli pas wan kapasiti we na 1, bikɔs i de ridyus di dip na di tik ɛn di ɔvahɛd fɔ di node ɔbjɛkt dɛn. we yu ad maksimal dip limit (usually 8-12 levels) de mek di patכlayz kes dεm we plεnti pכynt dεm de sheb idεntikal kכdכnayt dεm nכ de mek infinitely dip tik dεm. Ɛn fɔ dinamik datasɛt usay pɔynt dɛn de muv — lɛk we dɛn de trak motoka — yu go want fɔ pul di tik ɔ wan strateji fɔ bil di tik bak wan wan tɛm, bikɔs kwadtri nɔ de balans dɛnsɛf lɛk aw rɛd-blak tik dɛn de du.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Kwadtri dɛn na Biznɛs Plɛtfɔm ɛn Analitiks

Mɔdan biznɛs pletfɔm dɛn de dil mɔ ɛn mɔ wit spatial data, ilɛksɛf na di say dɛn we di kɔstɔma dɛn de, di say dɛn we dɛn de gi dɛn, di say dɛn we dɛn de sɛl, ɔ di say dɛn we dɛn de trak di prɔpati dɛn. Di chalenj nɔto jɔs fɔ kip dis data — i de mek i ebul fɔ aks kwɛstyɔn insay rial tɛm pan skel. We wan biznɛs we de wok akɔdin to 50 siti dɛn nid fɔ si di kastoma dɛnsiti, di rod delivri drayva dɛn, ɔ fɔ analayz rijinal sɛl pefɔmɛns, di ɔndalayn spatial indeks strateji de disayd if di dashbɔd de lod insay 200 milisekɔnd ɔ 20 sɛkɔn.

Dis na wan rizin we mek pletfɔm dɛn lɛk Mewayz — we de intagret 207 mɔdyul dɛn we de span CRM, invoys, flit manejmɛnt, bukin, ɛn analitiks insay wan biznɛs OS — de bɛnifit frɔm efishɔnal spatial data handlin ɔnda di hud. We wan flit manejmɛnt mɔdyul nid fɔ displei 500 aktif motoka dɛn na map, ɔ we wan CRM mɔdyul de si 138,000+ yuza ples fɔ teritɔri planin, naiv apɔch dɛn jɔs nɔ de skel. Spatial indeks strɔkchɔ lɛk kwadtri (ɔ dɛn database ikwal, lɛk PostGIS R-tri ɛn MySQL spatial indeks) de mek am pɔsibul fɔ ɔfr dɛn ficha ya we nɔ nid ɛntapraiz-grɛd hadwae.

Fɔ biznɛs dɛn we de evalyu pletfɔm, di tek-away na prɛktikal: tul dɛn we de handle lokeshɔn ɛn spatial data fayn nɔ jɔs de yuz fansi algɔritm fɔ di sake of am. Dɛn de mek di difrɛns bitwin bukin sistɛm we kin sho wantɛm wantɛm di savis provayda dɛn we de insay 10 kilomita ɛn wan we de tek 8 sɛkɔn fɔ lod di sem rizɔlt. Pɔfɔmɛnshɔn na dis lɛvɛl de translet dairekt to yuz ɛkspiriɛns ɛn, te go, revenyu.

Kwadtri vs. Ɔda Spatial Data Strukchɔ

Kwadtri nɔto di wan opshɔn fɔ spatial indeks, ɛn fɔ ɔndastand di ɔda we dɛn de ɛp yu fɔ pik di rayt tul. R-tri, we dɛn kin yuz bɔku bɔku wan na database lɛk PostGIS ɛn SQLite in R*Tree modul, de ɔganayz data insay minim baund rɛktɛnj ɛn handel rɛnj kwɛstyɔn ɛn nia-neba sɔch fayn fayn wan. Dɛn jɔs de ɔtpɔfɔm kwadtri fɔ disk-bɛs stɔrɔj bikɔs dɛn de minimiz I/O ɔpreshɔn, na dat mek bɔku pan di spatial database dɛn de yuz R-tri vɛryɔnt dɛn insay pas kwadtri.

K-d tik dɛm patishɔn spɛs yuz ɔltɛn aks-alayn split (fɔs bay x, dɔn bay y, dɔn bay x bak) ɛn dɛn fayn fɔ nia-neba sɔch insay mɔdaret dimɛnshɔn. Dɛn kin pas kwadtri dɛn we di dimɛnshɔnaliti smɔl ɛn di datasɛt nɔ de chenj, bɔt dɛn at fɔ ɔpdet dinamik wan. Geohashes tek wan difrɛn we ɔltogɛda, dɛn de ɛnkɔd latitud ɛn lɔnjitud insay wan string usay shered prɛfiks dɛn de sho spatial proksimit — we de mek dɛn fayn fɔ database indeks ɛn kesh bɔt nɔ fleksibul fɔ arbitri rɛnj kwɛstyɔn.

Kwadtri dɛn de ol dɛn yon insay sɛnɛriɔ dɛn we de ple to dɛn trɛnk: in-mɛmori spatial indeks, dinamik datasɛt dɛn wit frɛkuɛnt insɛshɔn ɛn dilit, vishɔnalizayshɔn aplikeshɔn usay di hayarkikal grid strɔkchɔ de map natura wan to zum lɛvɛl dɛn, ɛn sityueshɔn dɛn usay di simpul we aw dɛn de implimɛnt impɔtant. Fɔ wan frɔnt-ɛnd aplikeshɔn we de rɛnd 10,000 data pɔynt dɛn pan wan kanvas wit pan-ɛn-zum, wan kwadtri we dɛn impruv insay 100 layn dɛn na JavaSkript go pas ɛni sɔlvishɔn we dɛn bak wit database jɔs bay we i pul di nɛtwɔk latɛns.

Fɔ Start: Praktikal Nɛks Step dɛn

If yu want fɔ dip yu ɔndastandin bɔt kwadtri pas fɔ rid bɔt dɛn, di we we go wok pas ɔl na fɔ bil wan wit yu yay. Krio wan simpul kanvas aplikeshɔn usay we yu klik ad pɔynt dɛn, ɛn wach di tik sɔbdivayd insay rial tɛm. Ad wan rɛnj-kwɛri rɛktɛnj we yu kin drɛg rawnd ɛn aylayt di pɔynt dɛn we i fɛn. Dis han-on intarakshɔn de bil intuition se no amount of ridin kin mach — yu go si wantɛm wantɛm wetin mek klasta data de mek dip tik ɛn aw di pruning bihayvya we dɛn de aks kwɛstyɔn de pul big swaths of space.

Fɔ prodakshɔn aplikeshɔn, tink bɔt dɛn gaydlayn ya: if yu data de liv na database, yuz di spatial indeks we yu database de gi (PostGIS, MySQL Spatial, MongoDB 2dsphere indexes) pas fɔ impruv kwadtri dɛn na aplikeshɔn kɔd. If yu de du klaynt-sayd vishɔnalizeshɔn ɔ in-mɛmori prɔsesin, laybri dɛn lɛk d3-quadtree fɔ JavaSkript ɔ pyquadtree fɔ Paytɔn de gi yu implimɛnt dɛn we dɛn dɔn tɛst fɔ fɛt. Ɛn if yu de bil wan pletfɔm we de handle ɛni kayn lokeshɔn data — frɔm kɔstɔma adrɛs to delivri routin to teritɔri manejmɛnt — invɛst di tɛm fɔ ɔndastand spatial indeks, bikɔs i go fundamɛntli shep wetin yu aplikeshɔn kin du na skel.

Kwadtri ripresent wan brayt prinsipul na kɔmpyuta sayɛns: dat di strɔkchɔ we yu pik fɔ yu data de disayd di kwɛstyɔn dɛn we yu kin ansa fayn fayn wan. Wan flat list fɔ kɔdinɛt kin ansa "gi mi ɔl di pɔynt dɛm," bɔt wan kwadtri kin ansa "gi mi ɔl di pɔynt dɛm nia ya" — ɛn i kin du am fast inof fɔ fil instantaneous. Insay wan wɔl usay 73% pan di biznɛs data gɛt spatial kɔmpɔnɛnt akɔdin to di industri ɛstimat, da kapasiti de nɔto jɔs akademik. Na kɔmpitishɔn advantej.

Kwɛshɔn dɛn we dɛn kin aks bɔku tɛm

Wetin na kwadtri ɛn aw i de wok?

Kwadtri na wan tik-based data strɔkchɔ we de rikɔrsiv wan divayd tu-dimɛnshɔnal spɛs insay 4 ikwal kwadrant dɛn. Ɛni node kin ol wan limited nɔmba fɔ di data pɔynt bifo i split insay 4 pikin no dɛm. Dis hayarkikal patishɔn de mek spatial kwɛstyɔn — lɛk fɔ fɛn ɔl di pɔynt dɛn insay wan givɛn eria — rili fast, we de ridyus sɔch tɛm frɔm linya to lɔgaritmik insay mɔs prɛktikal sɛnɛriɔ.

Usay dɛn kin yuz kwadtri dɛn na rial-wɔl aplikeshɔn dɛn?

Kwadtri dɛn de pawa bɔku bɔku sistɛm dɛn we inklud dijital map dɛn wit pinch-to-zum funkshɔnaliti, rial-taym flit trakin dashbɔd dɛn, vidio gem kɔlishin ditekshɔn injin dɛn, ɛn jiografik infɔmeshɔn sistem dɛn we de prosɛs bɔku bɔku spatial kwɛstyɔn dɛn fɔ wan sɛkɔn. Ɛni aplikeshɔn we nid fɔ fɛn, insay, ɔ manej ɔbjɛkt dɛn we dɛn sheb akɔdin to tu-dimɛnshɔnal spɛs fayn fayn wan kin bɛnifit frɔm kwadtri indeks.

Aw kwadtri dɛn kin kɔmpia to ɔda spatial data strɔkchɔ dɛn?

Dɛn nɔ tan lɛk flat grid, kwadtri dɛn kin adap dɛn rizɔlt to di data dɛnsiti — spays eria dɛn kin de kɔs we di krawd rijyɔn dɛn kin sabdivayd mɔ. We yu kɔmpia am wit k-d tik dɛn, kwadtri dɛn simpul fɔ impruv ɛn dɛn bɛtɛ fɔ 2D data we dɛn sheb yunifom wan. R-tri dɛn de handle ɔvalap rijyɔn dɛn mɔ gras, bɔt kwadtri dɛn kin win pan insɛshɔn spid ɛn i izi fɔ paralel fɔ rial-taym woklɔd.

Kwadtri kin ɛp fɔ mek di wok fayn fayn wan na biznɛs softwe?

Na so i bi. Ɛni biznɛs tul we de handle lokeshɔn data, spatial analitiks, ɔ intaraktiv dashbɔd dɛn de bɛnifit frɔm kwadtri ɔptimayzeshɔn. Plɛtfɔm dɛn lɛk Mewayz, we na 207-mɔdyul biznɛs OS we de stat na $19/mo, de yuz efishɔnal data strɔkchɔ dɛn biɛn di sɛns fɔ gi fast, rispɔnsiv ɛkspiriɛns — frɔm stoa lɔkɛta map to rial-taym analisis akɔdin to tawzin data pɔynt dɛn.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime