我使用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
..不确定是否正确。
答案 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输出,你将获得一个更人性化的版本。