谷歌地图获得经度

时间:2011-05-03 20:34:29

标签: php google-maps

我使用Google Maps api使用以下代码获取位置坐标:

$q = "Miami Florida"; //example location to query
$api_key = "ABQIAAAA...";

$handle = fopen("http://maps.google.com/maps/geo?q=".urlencode($q)."&sensor=false&oe=utf8&gl=en&output=csv&key=".$api_key,"r");
$data = fgetcsv($handle); ?>

<?php echo $data[0]; ?> <br />
Latitude: <?php echo $data[2]; ?> <br />
Longitude: <?php echo $data[1]; ?> 

它返回正确的纬度(25.7889689),但经度总是一个数字,如4或5 ..这种情况发生在我查询的任何位置。此外,data [0]应该是精确搜索,但它返回200 ..不确定是否正确。

2 个答案:

答案 0 :(得分:2)

你使用了经度错误的索引

http://maps.google.com/maps/geo?q=new+haven+ct&sensor=false&oe=utf8&gl=en&output=csv

您想要$data[3]

$data[1]是准确度

答案 1 :(得分:2)

第一个元素是服务器响应代码,在您的情况下是200,让您知道它是成功的。第二个要素是准确性。第三和第四是纬度和经度。

当我在浏览器中输入http://maps.google.com/maps/geo?q=23943&sensor=false&oe=utf8&gl=en&output=csv时,我收到了以下输出:

200,5,33.4954920,-86.8094808

如果用json替换csv输出,你将获得一个更人性化的版本。