我正在编写一个Web应用程序,用于检索用户坐标,检查天气预报并返回有效温度。所有这些都需要一键完成。
到目前为止我所做的工作:使用Javascript获取位置并获取此位置的预测。我的问题是,我没有找到任何方法将JS坐标恢复到Page_load中的服务器代码隐藏。我看过很多指南,他们使用按钮在Page_load之后使用坐标。但这对我来说不是一个选择。
问题是javascript似乎是在每个page_events之后完成的。因此,在页面加载完成之前,我没有任何方法可以使用该位置。即使我将坐标传递给文本框。
这是我的javascript:
<script type="text/javascript" id="getCord">
if(typeof navigator.geolocation === 'undefined')
{
alert("Geolocation services are not supported by your web browser");
}
else
{
navigator.geolocation.getCurrentPosition(handleLocation, handleError);
}
function handleLocation(position)
{
var lat = position.coords.latitude;
document.getElementById('<%= latTextBox.ClientID %>').value = lat;
var lon = position.coords.longitude;
document.getElementById('<%= lonTextBox.ClientID %>').value = lon;
}
function handleError(error)
{
switch (error.code)
{
case error.TIMEOUT:
alert('Timeout');
break;
case error.POSITION_UNAVAILABLE:
alert('Position unavailable');
break;
case error.PERMISSION_DENIED:
alert('Permission denied');
break;
case error.UNKNOWN_ERROR:
alert('Unknown error');
break;
}
}
</script>
这是我的代码隐藏:
private string lat = "63.4164148";
private string lon = "10.409051999999999";
private string xmlData = "";
protected void Page_Load(object sender, EventArgs e)
{
if(!lonTextBox.Text.Equals(""))
{
lon = lonTextBox.Text;
}
if(!latTextBox.Text.Equals(""))
{
lat = latTextBox.Text;
}
maps.HRef = "maps.google.com/maps?z=12&t=m&q=loc:" + lat + "+" + lon;
loadXML();
}
我已经搜索了一周以上的答案,所以我希望我没有得到一个简单的链接到一个知名网站解释这个。