我使用html5地理位置来获取每个用户的当前位置,然后将其存储到数据库中。 我不知道如何获取当前位置而不使用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>
然后在数据库中,我可以使用post:
获取地理位置def post(self):
lat = float(self.request.get("lat"))
lon = float(self.request.get("lon"))
我想让每次用户刷新页面时更新当前位置。有没有办法做到这一点?
我知道我可以使用getDocumentbyId.submit()但是我想让这个页面成为用户可以根据其位置获取本地feed的主页面。所以,如果我在这个html中使用getDocumentbyId.submit(),它将无限循环。
答案 0 :(得分: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/