返回用户在sql查询中使用的当前位置的lat和long值

时间:2013-01-02 15:12:09

标签: c# asp.net sql geolocation

我正在使用HTML5地理位置来获取用户当前位置&在谷歌地图上显示这个。但是,我还想返回此位置的lat和long值,并将这些值传递给SQL数据源查询。我想要一个lat变量和一个long变量来传递。为了获得lat我只是分配var jsVar = position.coords.latitude,但这并没有返回任何东西。我意识到我应该使用hiddenfields来实现将var发送到服务器,但是当有多个隐藏字段时,我并不完全确定如何做到这一点。任何帮助将非常感激。这就是我所拥有的:

的Javascript

function SetHiddenVariable() {

  var jsVar = position.coords.latitude;
    // Set the value of the hidden variable to 
    // the value of the javascript variable
    var hiddenControl = '<%= inpHide.ClientID %>';
    document.getElementById(hiddenControl).value = "Latitude = " + jsVar;
}

ASP.NET

    <body onload="SetHiddenVariable()">
    <form id="form1" runat="server">
    <div>   
        <input id="inpHide" type="hidden" runat="server" />   
        <asp:TextBox ID="txtJSValue" runat="server"></asp:TextBox>
        <asp:Button ID="btnJSValue" 
           Text="Click to retrieve Javascript Variable" 
           runat="server" onclick="btnJSValue_Click"/>
    </div>
    </form>
</body>

C#背后的代码

protected void btnJSValue_Click(object sender, EventArgs e)
{
    txtJSValue.Text = inpHide.Value;
}

2 个答案:

答案 0 :(得分:0)

你可以在客户端汇总数据(使用逗号或其他一些对你有意义的分隔符,然后在服务器端分开。在这种情况下你只需要使用一个变量。

答案 1 :(得分:0)

这是执行此操作的html方式,可以帮助您入门。您只需要连接按钮单击事件并将输入转换为服务器端控件。祝你好运!

<!DOCTYPE html>
<html>
<head>
<script>
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(success);
}

function success(position) {
        document.getElementById("lat").value = position.coords.latitude;
        document.getElementById("long").value = position.coords.longitude;
} 
</script>
</head>

<body>
    <form id="form1" runat="server">
    <div>   
        Lat: <input id="lat" type="text" />
        Long: <input id="long" type="text" />
    </div>
    </form>
</body>
</html>