,

Geolocation på din hemsida

Jag sitter och programmerar en hemsida där jag vill hämta information om var en besökare finns, i alla fall på ett ungefär och i mitt fall vilket län besökaren finns i.

Vad är GeoLocation?

GeoLocation är ett system för att få fram information, till exempel används det när du checkar in på Facebook, Foursquare eller Google+.

Vad finns det för lösningar?

Det finns flera plugins, hemsidor och företag som erbjuder detta, men jag ville att det skulle vara snabbt och lätt att implementera och alla företag erbjuder olika lösningar. Många är lätta att hantera när man man arbetar med PHP, HTML, Javascript och så vidare men jag ville ha en lösning att kunna läsa in detta redan i page_load() funktionen.

Alla som arbetar med ASP.Net vet att det är lite problematiskt att läsa in JavaScript där, det går, men ofta med bristande resultat. Mina krav på hur det skulle fungera var ganska enkla:

  • Sidan ska känna av vilket Län besökaren finns i genom GeoLocation
  • Sidan ska ladda alla företag som finns i det länet in i en ListView
  • Det ska finnas en DropDown om det blir fel län eller besökaren kanske vill veta vad som finns i ett annat län

Det finns med enkla medel man kan göra detta genom HTML5 vilket fungerar bra, men återigen, jag ville att detta skulle skapas innan sidan laddas.

Jag tittade på några olika leverantörer som erbjuder denna tjänst, några var:

  • MaxMind (Deras Geolocation ‘GeoIP’ är inte gratis)
  • HTML5 GeoLocation (Denna ger koordinater)
  • IpLigence (Den här har ingen aning om var jag befinner mig, den påstår konsekvent att jag finns i Kista. Även deras GeoLocation ‘IP GeoLocator’ söker på IP-nummer)
  • HTML5 Geolocation – Google Maps (Fungerar bra, men ger koordinater istället för län)

Varför vill jag inte ha koordinater, enkelt, vill inte sitta och hämta alla koordinater för alla län för att kontrollera var besökaren finns.

Vad valde jag?

Den jag fastnade för var dessutom helt gratis och heter IP-API.com Denna kontrollerar utifrån IP numret var personen finns och jag får fram massor med information som jag kan använda mig av, denna levereras som XML – Nedan visas XML filen för just mig:

Vi kan ovan se att jag har satt lite (x) på min IP adress, dessutom stämmer postnumret inte helt, men det är bra nära. Vi kan även se att min Internetleverantör är Tele2 osv.

Nu tittar vi på fältet region och inser att det bara står siffror (16) och att det i fältet regionName inte finns stöd för svenska tecken, (ÅÄÖ).

Detta är inget problem eftersom jag ändå vill ha in detta i en databas och kan på så sätt “fixa” till det jag vill ha. När en besökare kommer till sidan hämtar jag fältet region  som är en FIPS kod och jämför den mot databasen.

Min databas ser ut så här:

Med detta script kan du skapa din egen databas med alla uppgifter i.

Nu ska vi bara ha en funktion som hämtar den information du vill ha:

Jag pillade ihop ett litet script för att det skulle bli enkelt att komma ihåg det hela, det finns många sätt att göra det på men detta fungerar bra för mig:

Sedan hämtar man bara den informationen man vill ha med:

Gör sedan ett script som hämtar det du vill ha från databasen, du klan ju alltid spara företag eller vad det nu är du har som du vill sortera med just Fips kod istället för namnet på länet.

Hoppas att detta kan hjälpa till i ert kodande.

OBS:

På mobiltelefoner fungerar detta inte speciellt bra eftersom många IP nummer kommer från leverantörens serverhall, jag hamnar i Stockholms län när jag surfar på 4G.

0 Kommentarer

Lämna en kommentar

Want to join the discussion?
Feel free to contribute!

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *