Kuidas teie veebisaidi külastajate asukohta JavaScripti abil tuvastada?

Foto autor Goran Ivos saidil Unsplash

Oma veebisaidi kasutajate asukoha tuvastamine on kasulik erinevatel põhjustel.

Võite näiteks kuvada erinevat sisu, võib-olla eri keeltes inimestele eri riikidest, või kuvada sihitud teavet erinevatest piirkondadest pärit külastajatele.

Ükskõik, millised võivad olla teie põhjused, on teil kaks võimalust:

  1. Geolocation API ja
  2. IP-aadressi otsing

Geograafilise asukoha API

Geograafilise asukoha API on uus HTML5 funktsioon, mis võimaldab veebilehe külastajatel soovi korral teiega oma asukohta jagada.

Kui proovite selle API abil asukohta hankida, kuvatakse kasutajale viip, milles küsitakse, kas ta soovib oma asukohta teie saidiga jagada.

Näide kasutajale kuvatava viiuliigist

Ilmselt tähendab see, et te ei saa asukohta, kui kasutaja otsustab teiega oma asukohta mitte jagada.

Puudused: see töötab ainult turvalistes serverites (https). Seda ei toeta Internet Explorer 10 ega uuemad versioonid ega OperaMini.

Koodi väljund annab meile ainult koordinaadid. Mis saab siis, kui vajate tegelikku asukohta või saate aadressi sõnadega? Sellest räägime pärast IP-otsimise arutamist.

IP-aadressi otsing

IP-aadressi otsing on veel üks viis oma külastaja asukoha saamiseks. Selle valiku jaoks kasutame tavaliselt avalikke IP-otsinguteenuseid / API-sid. Mõned neist on tasulised teenused ja mõned tasuta.

Näideteks on IP geograafilise asukoha API, IPinfo ja GEOIP DB. Nad pakuvad andmeid ka erinevates vormingutes, näiteks JSON, XML ja CSV. Selle teenuse kasutamiseks mõistmiseks lugege nende dokumentatsiooni.

Kasutan oma näites IP geograafilise asukoha API-d. Ma võiksin kasutada Vanilla JavaScripti, kuid ma ei tee seda. Raamatukogude (nt jQuery) abil on see lihtsam.

See on minu konsooli väljund:

Puudused: kuigi enamiku IP-otsinguteenuste antud riik on peaaegu alati täpne, pole koordinaadid alati täpsed. Kui soovite esitada palju päringuid, nõuavad mõned neist teenustest API-võtme hankimist ja peate võib-olla teenuse eest maksma.

Võite kasutada IP-otsimist alternatiivina või varukoopiana geolokatsiooni API jaoks brauserites, mis geograafilist asukohta ei toeta, või teavitada teid vea ilmnemisest, näiteks:

Nüüd, kui meil on asukoht ühel või teisel viisil, teisendame saadud laius- ja pikkuskraadi põhjalikumaks aadressiks, kasutades Google Mapsi tagurpidi geokoodeerimise API-t.

Google'i andmetel on pöördgeokodeerimine geograafiliste koordinaatide teisendamine inimesele loetavateks aadressideks. Kõik, mida vajame, on api-võti. Siit leiate juhised.

Selle sain ma järgmiselt:

Reverse Geocoding API näite väljund

Saate objektiga ringi mängida, et saada soovitud aadress soovitud vormingus.

Kui see kõik kokku panna, on meil allolev kood. (Pange tähele, et funktsiooni ipLookUp muudeti.)

Sel hetkel teame, kuidas meie kasutaja asukoht sõltumata sellest otsida. Nüüd saate koodi kohandada oma unikaalse projekti jaoks.

Loodan, et olete midagi õppinud, aitäh, et lugesite!

Lähtekood

Selle artikli koodi leiate GitHubist.