Geolokační API

Aktualizace již dávno zpožděna – Geolocation API je nyní dostupné ve všech prohlížečích!

Jedním ze zajímavých aspektů vývoje webu je geolokace; odkud si váš uživatel prohlíží váš web? Na těchto datech můžete založit své jazykové prostředí nebo zobrazit určité produkty ve svém obchodě na základě polohy uživatele. Pojďme se podívat, jak můžete pomocí geolokačního API získat podrobnosti o poloze!

Zobrazit ukázku

Detekce geolokačních schopností prohlížeče

Detekce funkcí je nejlepší způsob, jak ověřit dostupnost Geolocation API.

if("geolocation" in navigator) {
	//w00t!
}
else {
	alert("No soup for you!  Your browser does not support this feature");
}

Klíčem k detekci geolokace ve vašem prohlížeči je navigator.geolocation objekt. Použijte in místo jednoduše if(navigator.geolocation) je důležité, protože tato kontrola může inicializovat geolokaci a zabírat prostředky zařízení.

Dotaz na geolokační informace

navigator.geolocation.getCurrentPosition metoda je hnací silou pro získávání podrobností o poloze:

if("geolocation" in navigator) {
	navigator.geolocation.getCurrentPosition(function(position) {
		console.log(position);
	});
}

Jakmile zavoláte tuto metodu (poskytnete jí funkci, která se provede, pokud bude váš požadavek úspěšný), prohlížeč se uživatele zeptá, zda vám umožní získat informace o jeho poloze:

Když uživatel povolí webu načíst informace o své poloze, prohlížeč tyto informace načte a poskytne vám objekt polohy s užitečným zatížením, které vypadá takto:

// "Position" object
{
	coords: { "Coordinates" object
		accuracy: 65,
		altitude: 294.4074401855469,
		altitudeAccuracy: 10,
		heading: -1,
		latitude: 43.01256284360166,
		longitude: -89.44531987692744,
		speed: -1
	},

	timestamp: 1429722992094269
}

Pokud chcete více informací, jako je země, město atd., můžete použít službu třetí strany – existuje jich mnoho.

Zobrazit ukázku

Toto API je základem mnoha mobilních aplikací a skutečně by mělo být součástí sady nástrojů každého webového vývojáře. Nejlepší je, že všechny prohlížeče nyní podporují Geolocation API. Hodně štěstí při kódování!