현재 asp.net 프로젝트에서 GeoLocation을 구현하려고합니다. 이 코드는 geolocation을 사용하여 사용자의 위치를 가져오고 위도 및 경도 레이블을 업데이트합니다. 경도 레이블이 업데이트되면 해당 값을 기반으로 연산을 수행하는 C# 이벤트가 실행됩니다.GeoLocation, C# 이벤트 - 구현 방법
문제는 너무 빠르게 발생하는 것으로 보입니다. 그 이유는 모르겠습니다! 나는 또한 그것을 시험하기 위해 장치에 조금 붙어 있지만, 그것은 또 다른 이야기이다. 간단히 말하자면 모바일 장치에서 페이지는 내 위치에 대한 액세스 권한을 부여할지 묻는 반면 페이지가 백그라운드에서 새로 고쳐 지도록합니다.
코드는 다음과 같습니다 상단에
<asp:TextBox ID="lblLat" runat="server" BorderColor="White" BorderStyle="None" ForeColor="Black" Width="100px"></asp:TextBox>
<asp:TextBox ID="lblLon" runat="server" BorderColor="White" BorderStyle="None" ForeColor="Black" Width="100px" OnTextChanged="btnByProximity_Click"></asp:TextBox>
<button id="btnProximity" onclick="GetLocation()" runat="server" style="width: 30%">Proximity</button>
<script type="text/javascript">
function GetLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(ShowPosition, ShowError);
}
else { alert("Geolocation is not supported by this browser."); }
}
function ShowPosition(position)
{
document.getElementById("lblLat").value = position.coords.latitude;
document.getElementById("lblLon").value = position.coords.longitude;
//document.getElementById("lblChange").value = document.getElementById("lblChange").value + 1
}
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>
우리는 두 위도와 경도 라벨, lblLat 및 lblLon있어. lblLon이 변경되면 btnByProximity_Click 이벤트가 발생합니다. 우리의 btnProximity는 위치를 얻고 lblLat와 lblLon을 업데이트하기로되어있는 GetLocation 이벤트를 호출합니다.
서버 쪽과 클라이언트 쪽 이벤트가 혼합되어 있습니다. 작동하지 않을 것 같습니다. 정확히 원하는 행동은 무엇입니까? 실제로 나는 당신이'OnTextChanged' 이벤트를 필요로하지 않는다고 생각합니다. 클라이언트 액션이 뭔가 서버 측을 업데이트해야하는 경우 AJAX가 도움이 될 수 있습니다 ... –
원하는 동작은 위도와 경도를 가져 와서 사용할 수 있도록 각 레이블에 넣고 C# 이벤트가 어떻게 든 실행되는 것입니다 . OnTextChanged에서이를 수행하는 것이 내가 생각할 수있는 유일한 방법입니다. – user1560834