2011-12-28 157 views
3

如何在asp.net中獲取當前的經緯度。我有這個代碼,但它沒有返回數據。它不屬於警戒html5中的地理位置

<script type='text/javascript' language="javascript"> 
    function getUserLock() { 
     if (navigator.geolocation) { 

      navigator.geolocation.getCurrentPosition(displayResult, displayError); 
     } 
     else { 
      setMessage("Geolocation is not supported by this browser"); 
     } 
    } 

    function displayResult(position) {   
     setMessage("Latitude: " + position.coords.latitude + ", Longitude: " + position.coords.longitude); 
     PageMethods.SendLocation(position.coords.latitude, position.coords.longitude, onComplete, onFailed); 
     alert ('test'); 
    } 

    function setMessage(msg) { 
     //   document.forms[0].myLoc.value = msg; 
    } 

    function displayError(error) { 
     var errors = { 1: 'Permission denied', 2: 'Position unavailable', 3: 'Request timeout' }; 
     setMessage("Error occured: " + errors[error.code]); 
    } 

    function onComplete(args) { 
     if (args) 
      alert('Log in oldunuz'); 
     else 
      alert('İşlem Başarısız Oldu. Yeniden Deneyiniz...'); 
    } 

    function onFailed(error) { 
     alert('Yapılan işlem sırasında aşağıdaki hata(lar) oluştu.\n\r' + error.get_message()); 
    } 

</script> 

這是按鈕

<asp:Button ID="LoginButton" runat="server" Text="Log In" ValidationGroup="LoginUserValidationGroup" 
       OnClientClick="getUserLock();" OnClick="LoginButton_Click" /> 
+0

如果你把一個警報,並您的JavaScript獲得的緯度和經度?那將是最好的起點。 – 2011-12-28 22:21:48

+0

我嘗試了一下,但沒有失敗。首先用戶點擊myLogIn按鈕,瀏覽器詢問允許或拒絕。但在一秒鐘內,它會自動消失 – ozkank 2011-12-28 22:24:49

+0

那麼你的問題與緯度或經度無關嗎? – 2011-12-29 15:55:58

回答

0

可以有幾個問題在這裏:

爲了能夠使用PageMethods容器在JavaScript中,你需要

首先,用[WebMethod]屬性修飾你的方法。您只能使用靜態方法!

[WebMethod] 
public static string HelloWorld(string name) 
{ 
    return 「Hello, World. I am 」 + name; 
} 

其次,啓用PageMethods

<asp:ScriptManager ID=」ScriptManager1″ runat=」server」 EnablePageMethods=」True」 /> 

我還要通過提供相應的功能處理的函數添加錯誤處理一些支持的支持:從PageMethods每次調用花費的可能的結果參數調用以及一些其他參數。

+0

我也加了這些。但是,我仍然不能拿這些數據。我調試它,但斷點不失敗。 (對不起,我的英語不好) – ozkank 2011-12-28 22:45:12

+0

它仍然沒有解決。 – ozkank 2011-12-28 23:02:20

0

第一件事就是添加超時(默認超時爲無窮大),這樣你可以得到錯誤信息

navigator.geolocation.getCurrentPosition(displayResult, displayError,{timeout:10000});