2015-08-30 89 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头文件的信息。 –

相关问题