Я хочу сохранить текущее местоположение пользователя на веб-сайте ASP.NET MVC на время сеанса. Поскольку я хочу использовать сервер местоположения, я думаю, что это должно работать (возможно, другие предложения?), Когда пользователь впервые заходит на веб-сайт, я получаю местоположение и сохраняю его в сеансе, поэтому при последующих запросах это происходит. не нужно искать снова.
Лучший способ, который я могу найти, - это использовать метод ClientLocation от 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>
Мой вопрос заключается в том, как лучше всего найти местоположение в этом коде Javascript на сервере для хранения в базе данных или в сеансе. Я знаю, что мог бы вызвать действие контроллера, используя jQuery для передачи местоположения:
$.post("/Home/StoreLocation", location, function(){});
Но для производительности я не хочу, чтобы это происходило при каждой загрузке страницы. Другой способ, которым я думал сделать это - вызвать API-интерфейс Google из кода .NET, выполнив что-то вроде этого (вызов геокодирования):
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
Но я не могу найти эквивалентный способ вызова ClientLocation напрямую с URL-адреса, подобного этому - все примеры, которые я видел, используют google.loader (который, я не думаю, я смогу использовать при этом таким образом?) Другой Я рассмотрел вопрос об использовании библиотеки Google .NET , но я не могу найти там ничего для поиска местоположения (может быть, я ошибаюсь?).