客户端协调服务器代码

时间:2014-02-03 21:31:43

标签: c# javascript asp.net geolocation

我正在编写一个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();

    }

我已经搜索了一周以上的答案,所以我希望我没有得到一个简单的链接到一个知名网站解释这个。

0 个答案:

没有答案