В настоящее время я пытаюсь получить информацию о высоте в радиусе 60 миль от указанной c точки. У меня есть все точки широты и долготы, но я пытаюсь использовать API-интерфейс elevation-api.io для извлечения данных высот с помощью запроса POST.
Я протестировал API с https://reqbin.com/, тестер POST-запроса. Это был необработанный ввод:
POST /api/elevation HTTP/1.1
Host: elevation-api.io
ELEVATION-API-KEY: 2vdJ9d0e6IndKV33m1if18GPgX9-V9
Content-Type: application/json
Content-Length: 34
{"points":[[39.90974,-106.17188]]}
Результаты:
{
"elevations": [{
"lat": 39.90974,
"lon": -106.17188,
"elevation": 2768.5
}],
"resolution": "5000m"
}
Однако, когда я использую следующий код из моего приложения PHP, я получаю другие результаты. Мой код:
$key = //removed
$url = "https://elevation-api.io/api/elevation";
$data = array('points' => [[39.90974,-106.17188]]);
var_dump(json_encode($data));
$options = array(
'HTTP/1.1' => array(
'method' => 'POST',
'header' => "Host: elevation-api.io\r\nELEVATION-API-KEY: " . $key . "\r\nContent-Type: application/json\r\nContent-Length: ".strlen(json_encode($data))."\r\n",
'content' => json_encode($data)
)
);
$context = stream_context_create($options);
var_dump($options);
$result = file_get_contents($url, false, $context);
if($result === FALSE){
throw new \Exception("Error getting result for terrain points.");
}
var_dump($result);
Полученный результат:
string(34) "{"points":[[39.90974,-106.17188]]}"
array(1) {
["HTTP/1.1"]=>
array(3) {
["method"]=>
string(4) "POST"
["header"]=>
string(127) "Host: elevation-api.io
ELEVATION-API-KEY: *REMOVED*
Content-Type: application/json
Content-Length: 34
"
["content"]=>
string(34) "{"points":[[39.90974,-106.17188]]}"
}
}
string(219) "{"message":"Please provide some coordinates! ie. http://elevation-api.io/api/elevation?points=(39.90974,-106.17188),(62.52417,10.02487)&key=<your-key>, although a key isn't needed for 5km resolution and req/min < 500"}"
Я готов поспорить, что ошибка очень глупая, но я уже несколько часов пробую разные вещи, и нет радость. Спасибо за любую помощь.