从Javascript / Geocoder.geocode()获取纬度和经度,并将其与php一起使用

时间:2014-09-11 04:22:02

标签: javascript php google-maps google-maps-api-3

我需要从地址获取经度和经度,使用谷歌地图,并用php操纵它。

我正在使用像https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple这样的代码,其中包含以下部分:

function codeAddress() {
  var address = document.getElementById('address').value;
  geocoder.geocode( { 'address': address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      map.setCenter(results[0].geometry.location);
      var latitude = results[0].geometry.location.lat();
      var longitude = results[0].geometry.location.lng();
      var marker = new google.maps.Marker({
          map: map,
          position: results[0].geometry.location
      });
    } else {
      alert('Geocode was not successful for the following reason: ' + status);
    }
  });
}

我已经添加了变量纬度和经度(按照this question中的说明。现在,我需要在php脚本中使用我在java脚本中创建的变量。

我是javascript的新手,所以,如果这是一个简单的问题,我很抱歉。

2 个答案:

答案 0 :(得分:2)

一种简单的方法是使用基于jquery的ajax。别忘了下载/包含图书馆。

$.ajax({
   type:"POST",
   url:"yourscript.php",
   data: {type:getlatlong,latitude:latitude,longitude:longitude},
   success: function(){
      alert('sent');
   }
});

在PHP上,您可以访问以下信息:

if ($_SERVER["REQUEST_METHOD"]=="POST") {
   if ($_POST["type"]=="getlatlong") {
      $latitude = $_POST["latitude"];
      $longitude = $_POST["longitude"];
      ...
   }

答案 1 :(得分:0)

我认为你需要php脚本中的javascript变量.Php是用于访问数据的服务器端语言,你可以使用get或post方法。你可以简单地这样做,首先将javascript变量分配给隐藏文本字段并使用php访问获取或发布方法。您可以像这样分配javascript变量

<form action="yourphp.php" method="post"> <input type="hidden" value="latitude" name="latitude"> <input type="hidden" value="longitude " name="longitude"> </form>

在您的php文件中访问数据:

$latitude=$_POST['latitude'] $longitude=$_POST['longitude']