如何使用here.com的REST api服务

How to consume here.com's REST api service

本文关键字:REST api 服务 com 何使用 here      更新时间:2023-09-26

有人尝试过使用here.com的rest api吗?我试图运行一个示例请求,但什么也没发生。我是REST的新手,所以我对这个问题一无所知。如果将$url直接插入浏览器的地址文本框中,则会显示图像,但是下面代码中的curl函数不会检索到任何内容,至少看起来是这样。

$url = "http://image.maps.cit.api.here.com/mia/1.6/route?app_id=redacted&app_code=redacted&r0=52.5338,13.2966,52.538361,13.325329&r1=52.540867,13.262444,52.536691,13.264561,52.529172,13.268337,52.528337,13.273144,52.52583,13.27898,52.518728,13.279667&m0=52.5338,13.2966,52.538361,13.325329&m1=52.540867,13.262444,52.518728,13.279667&lc0=440000ff&sc0=440000ff&lw0=6&lc1=44ff00ff&sc1=44ff00ff&lw1=3";
$ch = curl_init($url);
$options = array(
            CURLOPT_CONNECTTIMEOUT => 20 ,
            CURLOPT_AUTOREFERER => true,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_RETURNTRANSFER => true,
           );
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
$result = json_decode($response);
echo "response: <br>";
echo "<br>";
echo "result: <br> " . $result;
curl_close($ch);

最后我发现了错误。这是一个使用here.com REST api的工作示例,我正在发布,以便任何处于相同情况的人都可以看看它。问题是,查询字符串的构造是不正确的,因为我只是复制和粘贴它从浏览器。如果有人遇到同样的问题,我建议看一下这里的文档。

$base_url = 'http://image.maps.cit.api.here.com'; 
$path = '/mia/1.6/';
$resource = 'route';    // type of service... this should change if you want something else
$query_string = array(
    'app_id'    => 'XXXXXXXXXXXXXXXXXXXXXX',  //your app id
    'app_code'  => 'XXXXXXXXXXXXXXXXXXXXXX',  // your app code
    'r0'        => '52.540867,13.262444,52.536691,13.264561,52.529172,13.268337,52.528337,13.273144,52.52583,13.27898,52.518728,13.279667', // coords for the route
    'lw'        => '4',   // line width
    'lc'        => '00ff00',  // line color
);
$url = $base_url . $path.$resource . '?' . http_build_query($query_string);
$img_file = './img/test_img2.jpg';  // save image here
$ch = curl_init($url);
$fp = fopen($img_file, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
<img src='<?php echo $img_file;?>'>