想用c#code behind获取GPS坐标吗
我的GPS坐标有点问题。我能够使用地理定位在asp.net/javascript中获取坐标,但需要这些坐标对c#codebehind中的方法可用。不幸的是,由于某些原因,检索到的坐标不存在,即使我将它们放入标签中(由于某些原因,它们永远不会在那里结束) 所以,我现在想的是尝试将坐标(只需要纬度和经度)直接输入到c#中,即使我必须通过c#运行一些javascript(不确定您是如何做到的) 有人有什么想法吗?我已经在下面发布了javascript:想用c#code behind获取GPS坐标吗,c#,javascript,asp.net,geolocation,gps,C#,Javascript,Asp.net,Geolocation,Gps,我的GPS坐标有点问题。我能够使用地理定位在asp.net/javascript中获取坐标,但需要这些坐标对c#codebehind中的方法可用。不幸的是,由于某些原因,检索到的坐标不存在,即使我将它们放入标签中(由于某些原因,它们永远不会在那里结束) 所以,我现在想的是尝试将坐标(只需要纬度和经度)直接输入到c#中,即使我必须通过c#运行一些javascript(不确定您是如何做到的) 有人有什么想法吗?我已经在下面发布了javascript: <button id="btnLocate
<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>
Loc
函数GetLocation()
{
if(导航器.地理位置)
{
navigator.geolocation.getCurrentPosition(ShowPosition,ShowError,{maximumAge:5000,timeout:10000});
}
else{alert(“此浏览器不支持地理位置”。);}
}
功能显示位置(位置)
{
var latdata=位置坐标纬度;
var londata=position.coords.longitude;
document.getElementById(“lblLat”).value=latdata;
document.getElementById(“lblLon”).value=londata;
}
功能错误(错误)
{
if(error.code==1)
{
警报(“用户拒绝了地理定位请求”);
}
else if(error.code==2)
{
警报(“位置信息不可用”);
}
else if(error.code==3)
{
警报(“获取用户位置的请求超时”);
}
其他的
{
警报(“发生未知错误”);
}
}
我猜您想在codebehind方法中使用坐标
为什么不在打开页面时运行,然后在单击按钮时检索fra标签/文本框的数据
<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;
}
}
if(typeof navigator.geolocation==‘未定义’)
{
警报(“您的web浏览器不支持地理位置服务”);
}
其他的
{
navigator.geolocation.getCurrentPosition(handleLocation,handleError);
}
功能手柄位置(位置)
{
var lat=位置坐标纬度;
document.getElementById(“”).value=lat;
var lon=位置坐标经度;
document.getElementById(“”).value=lon;
}
函数句柄错误(错误)
{
开关(错误代码)
{
大小写错误。超时:
警报(“超时”);
打破
案例错误。位置不可用:
警报(“位置不可用”);
打破
案例错误。权限被拒绝:
警报(“权限被拒绝”);
打破
案例错误。未知错误:
警报(“未知错误”);
打破
}
}
这将在不按下按钮的情况下运行,而lonTextBox上ID为latTextBox的文本框将获得您可以使用的坐标。您需要使用AJAX,或者将它们放在浏览器将发送回服务器的表单元素中,以前从未尝试过AJAX。正如我所说,我试着将它们放在标签中(好吧,文本框,但我试过标签)。也不是形式元素。我该怎么做?标签不会发回。文本框是,但您需要使用
ClientID
。查看浏览器错误控制台。