繁体   English   中英

将用户地理位置从客户端传递到服务器端

[英]Pass a user geolocation from client side to server side

我正在使用Google Geolocation API在客户端获取用户位置,并尝试将其传递给服务器端以执行位置查询。

我无法获取服务器端的用户位置/ pos变量(lat,lng),因为只有在用户接受使用其当前位置后才将此值分配给输入变量(location),这是“ GET”之后的一个实例服务器上的方法,反之亦然。

我真的很感谢从客户端到服务器端获得lat,lng的一些帮助。

以下是我在geolocation.html中使用的表格

<form id = "geolocation" action="" method="GET">
<input type="text" id = "location" name="location" value="">
<input type="submit" />
</form>

这是Google地理位置API 的链接 以下是用于获取用户地理位置并将其分配给id = location的HTML输入字段的代码摘录,以便我可以在服务器端使用GET方法来获取地理位置。

if(navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(position) {
    var pos = new google.maps.LatLng(position.coords.latitude,
                                   position.coords.longitude);

    var infowindow = new google.maps.InfoWindow({
      map: map,
      position: pos,
      content: 'Location found using HTML5.'
  });

  // the below code has been inserted to assign a JS variable to HTML field called 'location'
document.getElementById('location').value = pos

您必须添加成功/错误回调,以在用户接受共享位置信息时触发事件:

navigator.geolocation.getCurrentPosition(success, error);
function success(position){
    var lat = position.coords.latitude;
    var lon = position.coords.longitude;
    document.getElementById('location').value = lat + ',' + lon;
}

function error() {
    // do something with the error message
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM