php地址分为纬度和经度

时间:2014-03-18 20:53:47

标签: php

我正在尝试将地址转换为latitude.here是我的代码。 但它给出了错误的自由。如果我手动将地址放在$ final的地方,它会给出正确的纬度。但是我无法对其进行硬编码,无论文本框中有什么来源,我都必须找出该地址的纬度。这是什么错误?

<?php 
    $source=$_POST['textfield11'];
    $dest=$_POST['textfield12'];
    $time=$_POST['textfield13'];
    $only = str_replace(',', '+', $source);
    $final = str_replace(' ', '+', $only);

    $url='http://maps.googleapis.com/maps/api/geocode/json?address=$final&sensor=false';
    $source1 = file_get_contents($url);
    $obj = json_decode($source1);
    $LATITUDE = $obj->results[0]->geometry->location->lat;
    echo $LATITUDE;
?>

3 个答案:

答案 0 :(得分:1)

您应该使用str_replace而不是urlencode

<?php 
$source=urlencode($_POST['textfield11']);
$dest=$_POST['textfield12'];
$time=$_POST['textfield13'];

$url='http://maps.googleapis.com/maps/api/geocode/json?address=$source&sensor=false';
$source1 = file_get_contents($url);
$obj = json_decode($source1);
$LATITUDE = $obj->results[0]->geometry->location->lat;
echo $LATITUDE;
?>

答案 1 :(得分:0)

<?
$final = urlencode($source);
$geo = simplexml_load_file("http://maps.google.com/maps/api/geocode/xml?address={$final}&sensor=false");
$lat = $geo->result->geometry->location->lat;
$lng = $geo->result->geometry->location->lng;
?>

答案 2 :(得分:-1)

此时在, ... Cos str_replace之后添加一个空格,如果用户输入的地址为“Somewhere road,That town”,它将替换','一个加号,然后空间导致:“某处+道路++那个镇”......所以这样的事情:

<?php 
 $source=$_POST['textfield11'];
 $dest=$_POST['textfield12'];
  $time=$_POST['textfield13'];
  $only = str_replace(', ', '+', $source);
    $final = str_replace(' ', '+', $only);
  $url='http://maps.googleapis.com/maps/api/geocode/json?address=$final&sensor=false';
  $source1 = file_get_contents($url);
   $obj = json_decode($source1);
      $LATITUDE = $obj->results[0]->geometry->location->lat;
   echo $LATITUDE;
 ?>