地理位置代码返回空结果

时间:2015-08-03 14:09:43

标签: geolocation mac-address google-geolocation

我想使用mac地址获取设备的经度和纬度,而不是没有返回任何值。

我已激活Google地理位置API并启用了结算功能。请帮助。

<?php           
        $mac = "E4:D5:3D:E4:05:BF"; 
        //encode the data in JSON   
    $wifiAccessPoints = array("macAddress"=>$mac);
    $wifiAccessPoints = json_encode($wifiAccessPoints);

    $API_key = "AIzaSyApOf.................";

        $url  = "https://www.googleapis.com/geolocation/v1/geolocate?key=$API_key";



        $client = curl_init($url);
        //send the request to resource
        curl_setopt($client, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($client, CURLOPT_HEADER, false);
        curl_setopt($client, CURLOPT_POSTFIELDS, $wifiAccessPoints);
        curl_setopt($client, CURLOPT_RETURNTRANSFER,true);

        curl_setopt($client, CURLOPT_HTTPHEADER,array("Content-type: application/json", "Content-Length".strlen($wifiAccessPoints)));

        curl_setopt($client,CURLOPT_POST,true);


        //get response from request.
        $response = curl_exec($client);

        //decode format response
        //$result = json_decode($response);
        $status = curl_getinfo($client, CURLINFO_HTTP_CODE);

        echo $status."<br>";

        echo $response."<br>";

        ?>     

1 个答案:

答案 0 :(得分:0)

返回的错误表明您的请求格式正确,但API无法找到它的地理位置。 API documentation可以说明你的结果:

  

原因: notFound
  域名:地理位置
  状态代码: 404
  说明:请求有效,但未返回任何结果。

因此,您似乎已成功执行了您的请求,但Google并不总是能够告诉您特定WiFi接入点的位置(无法让他们全部了解这些接入点)。

文档还说明了

  

请求正文的wifiAccessPoints数组必须包含两个或更多个WiFi接入点对象。 macAddress是必需的;所有其他字段都是可选的。

看起来您只有一个接入点,通过IP查找可能非常准确。 The documentation提供了大量有关如何重新格式化输入JSON的信息。