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

Posted

技术标签:

【中文标题】返回要在 sql 查询中使用的用户当前位置的 lat 和 long 值【英文标题】:Return lat and long values of user's current location to be used in a sql query 【发布时间】:2013-01-02 15:12:09 【问题描述】:

我正在使用 html5 地理位置来获取用户当前位置并将其显示在谷歌地图上。但是,我还想返回此位置的 lat 和 long 值,并将这些值传递给 SQL 数据源查询。我想要一个 lat 变量和一个 long 变量通过。为了获得纬度,我只是分配了 var jsVar = position.coords.latitude 但这并没有返回任何东西。我意识到我应该使用隐藏字段来实现将 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;

【问题讨论】:

我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。 【参考方案1】:

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

【讨论】:

【参考方案2】:

这是执行此操作的 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>

【讨论】:

谢谢。你的建议非常合乎逻辑。我的代码看起来不错,但由于某种原因它不起作用。 function GetLatLong(position) var userlat = position.coords.latitude; var hiddenControl = ''; document.getElementById("lat").value = userlat;

以上是关于返回要在 sql 查询中使用的用户当前位置的 lat 和 long 值的主要内容,如果未能解决你的问题,请参考以下文章

使用地理跟踪和 SQL 查询

sql 子查询返回的值不止一个怎么解决?

SQL Server 查询。用户存在于另一个表中但不存在用户的位置

返回多于一列的 SQL 子查询

APEX类列出要在VisualForce页面中使用的多个查询

使用“IN”命令将数组作为要在 SQL 查询中使用的参数传递