Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php从地址google地图获取纬度和经度_Php_Google Maps - Fatal编程技术网

如何使用php从地址google地图获取纬度和经度

如何使用php从地址google地图获取纬度和经度,php,google-maps,Php,Google Maps,我有一个地址,我想用它来获取准确的纬度和经度 但当我运行代码时,它会给我一些其他位置的纬度和经度 我想要的输出 我得到的输出 请帮帮我 提前谢谢 <?php $address = 'Cafe Coffee Day, INSIDE HPCL Petrol Bunk, Mumbai - Goa Highway, Mangaon, Maharashtra, India'; $prepAddr = str_replace(' ','+',$address); $geocode=fi

我有一个地址,我想用它来获取准确的纬度和经度

但当我运行代码时,它会给我一些其他位置的纬度和经度

我想要的输出

我得到的输出

请帮帮我

提前谢谢

<?php
$address = 'Cafe Coffee Day, INSIDE HPCL Petrol Bunk, Mumbai - Goa Highway,    
Mangaon, Maharashtra, India'; 
$prepAddr = str_replace(' ','+',$address);

$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?     
address='.$prepAddr.'&sensor=false');

$output= json_decode($geocode);

// echo "<pre>";
// print_r($output);

$lat = $output->results[0]->geometry->bounds->northeast->lat;
$long = $output->results[0]->geometry->bounds->northeast->lng;
// $lati=round($lat,6);
// $longi=round($long,6);

echo $address.'<br>Lat: '.$lat.'<br>Long: '.$long;

?>

改为:

echo $address.'<br>Lat: '.$lat.'<br>Long: '.$long;

将您的echo语句更改为

<?php
$address = "Cafe Coffee Day, INSIDE HPCL Petrol Bunk, Mumbai - Goa Highway,    Mangaon, Maharashtra, India";
 $url = "http://maps.google.com/maps/api/geocode/json?address=".urlencode($address)."&sensor=false&region=India";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response);
echo $lat = $response_a->results[0]->geometry->location->lat;
echo "<br />";
echo $long = $response_a->results[0]->geometry->location->lng;

?>
echo$address.'
Lat:'.$Lat.
Long:'.$Long;

注意:从变量中删除尾随的i



输出是

尝试
位置
,而不是
东北
。另外,您的请求URL在address参数之间有一个空格,这导致它当前失败,这可能是问题所在吗?你能详细描述一下
不准确的
吗?@chris85事实上我得到了lat和long,但它给了我地址以外的其他位置好的,所以使用
位置
,或者使用
东北
西南
边界点。或者用您当前得到的信息和预期得到的信息更新问题。@Dharmespatel您将无法通过地址获得确切的位置。您将获得附近位置的详细信息。很抱歉,这是一个输入错误。您是否也更改了echo中的变量名?我的意思是$lati->$lat和$longi->$long在echo语句中。得到相同的输出。从地址中删除(,)并使用正确的地址,不要使用空格。使用(+)@Dharmespatel它对我有用。你能告诉我你要传递的地址类型吗($address=“India+jaipur+vaishalinagar”)@Dharmespatel请使用此
$address=“咖啡日,印度马哈拉施特拉邦Mangaon孟买-果阿公路HPCL汽油铺内”$url=”http://maps.google.com/maps/api/geocode/json?address=“.urlencode($address)。”&sensor=false®ion=India“
echo $address.'<br>Lat: '.$lat.'<br>Long: '.$long;
<?php
$address = "Cafe Coffee Day, INSIDE HPCL Petrol Bunk, Mumbai - Goa Highway,    Mangaon, Maharashtra, India";
 $url = "http://maps.google.com/maps/api/geocode/json?address=".urlencode($address)."&sensor=false&region=India";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response);
echo $lat = $response_a->results[0]->geometry->location->lat;
echo "<br />";
echo $long = $response_a->results[0]->geometry->location->lng;

?>