2015-08-30 123 views
0

我使用html5地理位置獲取每個用戶的當前位置,然後將其存儲到數據庫。 我不知道如何獲取當前位置,而不使用HTML中的表單或輸入法,然後將其發佈到服務器。如何從html /模板獲取數據

<form method="post" id="geo_form"> 
    <input type="hidden" id="lat" name="lat" value=""> 
    <input type="hidden" id="lon" name="lon" value=""> 
    <input type="submit" name="submit" value="Click"> 
</form> 

<script> 
    function getLocation() { 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(showPosition); 
     } 
    } 

    function showPosition(position) { 
     document.getElementById("lat").value = position.coords.latitude; 
     document.getElementById("lon").value = position.coords.longitude; 
    } 

    getLocation() 

<script> 

然後在數據庫中,我可以通過郵寄得到地理位置:

def post(self): 
    lat = float(self.request.get("lat")) 
    lon = float(self.request.get("lon")) 

的probem是我想要做的當前位置更新,每次用戶刷新頁面。有什麼辦法可以做到嗎?

我知道我可以使用getDocumentbyId.submit(),但我想使這個頁面成爲主頁面,用戶可以根據它們的位置獲取本地提要。所以,如果我在這個html中使用getDocumentbyId.submit(),它將會無限循環。

回答

3

當提供請求時,GAE根據客戶端請求的IP地址自動插入一個響應頭X-AppEngine-CityLatLong,其中包含緯度和經度。

你可以像訪問標題:

location = self.request.headers.get('X-AppEngine-CityLatLong') 

此處瞭解詳情:http://rominirani.com/2012/04/25/appengine-location-detection-update-x-appengine-country-and-more/

+0

它不工作dev的服務器(本地主機)上,但之後我在其他源中讀取它只是工作部署的應用。感謝您告訴我有關Google頭文件的信息。 –

相關問題