Je souhaite stocker l'emplacement actuel d'un utilisateur sur un site Web ASP.NET MVC pendant la durée d'une session. Parce que je veux utiliser l'emplacement côté serveur, la façon dont je pense que cela devrait fonctionner (peut-être d'autres suggestions?) Est quand un utilisateur frappe le site, j'obtiens l'emplacement et le stocke dans la session. ne pas avoir à être recherché à nouveau.Obtention de l'emplacement de l'utilisateur à l'aide de Google à partir du code .NET
La meilleure façon que je peux trouver est d'utiliser la méthode de ClientLocation de Google:
<script src="http://www.google.com/jsapi?key=YOURAPIKEY" type="text/javascript"></script>
<script>
google.load("jquery", "1.2.6");
google.load("jqueryui", "1.5.2");
var yourLocation = google.loader.ClientLocation.address.city + ", "
+ google.loader.ClientLocation.address.region;
</script>
Ma question est la meilleure façon d'obtenir l'emplacement recherché dans le code Javascript au serveur pour stocker dans la base de données ou la session. Je sais que je pourrais appeler une action de contrôleur en utilisant jQuery pour passer l'emplacement:
$.post("/Home/StoreLocation", location, function(){});
Mais pour la performance que je ne veux pas que cela se passe à chaque chargement d'une seule page. L'autre façon que je pensais le faire était d'appeler les APIs de Google à partir du code .NET en faisant quelque chose comme ça (un appel à géocodage):
string path = "http://maps.google.com/maps/geo?q=" + strAddress + "&output=csv&key=" + apiKey;
WebClient client = new WebClient();
string[] eResult = client.DownloadString(sPath).ToString().Split(',');
//Parse the array
Mais je ne peux pas trouver un moyen équivalent à appeler ClientLocation directement à partir de une URL comme ceci - tous les exemples que j'ai vus utilisent google.loader (que je ne pense pas pouvoir utiliser de cette façon?) Une autre chose que j'ai considérée est l'utilisation de , mais je n'y trouve rien faire une recherche de lieu (peut-être que je me trompe?).
Oui! L'instruction conditionnelle C#!session ["has_location"] pour montrer/cacher l'appel de jQuery était ce qui me manquait, je ne sais pas pourquoi je n'ai pas pensé à ça! Merci James! (Le deuxième exemple est GeoCoding, juste pour montrer comment j'appellerais une URL du code - Je ne veux pas vraiment le géocoder Oui, vous passez dans l'adresse du client et il devrait retourner une Longitude/Latitude.) –