想在 C# 代码隐藏中获取 GPS 坐标
Posted
技术标签:
【中文标题】想在 C# 代码隐藏中获取 GPS 坐标【英文标题】:Want to get GPS coordinates in c# codebehind 【发布时间】:2013-11-22 14:46:28 【问题描述】:我的 GPS 坐标有点问题。我可以使用地理位置在 asp.net / javascript 中获取坐标,但需要这些可用于 c# 代码隐藏中的方法。不幸的是,由于某种原因,检索到的坐标不是,即使我将它们放入标签中(由于某种原因它们永远不会在那里结束)。
所以,我现在想的是尝试以某种方式将坐标(只需要纬度和经度)直接输入 c#,即使我必须通过 c# 运行一些 javascript(不确定你是如何做到的)。
有人有什么想法吗?我在下面发布了 javascript:
<button id="btnLocate" runat="server" onclick="GetLocation()" style="width: 15%">Loc</button>
<script type="text/javascript">
function GetLocation()
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(ShowPosition, ShowError, maximumAge: 5000, timeout: 10000 );
else alert("Geolocation is not supported by this browser.");
function ShowPosition(position)
var latdata = position.coords.latitude;
var londata = position.coords.longitude;
document.getElementById("lblLat").value = latdata;
document.getElementById("lblLon").value = londata;
function ShowError(error)
if (error.code == 1)
alert("User denied the request for Geolocation.");
else if (error.code == 2)
alert("Location information is unavailable.");
else if (error.code == 3)
alert("The request to get user location timed out.");
else
alert("An unknown error occurred.");
</script>
【问题讨论】:
你需要使用AJAX,或者将它们放在浏览器将发送回服务器的表单元素中, 以前从未尝试过 AJAX。正如我所说,我尝试将它们放入标签中(好吧,文本框,但我尝试过标签)。也不是表单元素。我该怎么做? 标签未回发。文本框是,但您需要使用ClientID
。查看浏览器错误控制台。
【参考方案1】:
我猜你想在代码隐藏方法中使用坐标?
为什么不直接在打开页面时运行,然后在单击按钮时检索标签/文本框的数据?
<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;
这将在不按按钮的情况下运行,并且您在 lonTextBox 上 ID 为 latTextBox 的文本框将获得您可以使用的坐标。
【讨论】:
以上是关于想在 C# 代码隐藏中获取 GPS 坐标的主要内容,如果未能解决你的问题,请参考以下文章