Я пытаюсь загрузить сферические изображения в режиме просмотра улиц с помощью Publish Api.
Загрузка данных изображения и привязка места работает хорошо, но всякий раз, когда я пытаюсь загрузить данные о курсе и позиции GPS на сервер изображений, отвечает «ОК», но тогда ни изображение, ни заголовок или позиция не были связаны с изображением.
Вот код php, который я использую для последнего шага загрузки информации, я действительно не знаю, где я не прав.
$data['uploadReference']['uploadUrl']=$upload_url;
$data['pose']['heading']=$heading_north;
$data['pose']['latLngPair']=$latLngPair;
$data['captureTime']['seconds']=time();
$data['places']['placeId']=$placeid;
$data_string = json_encode($data);$ch = curl_init('https://streetviewpublish.googleapis.com/v1/photo?key='.$_GOOGLE_API['api_key']);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer '.$_GOOGLE_API['access_token'],
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
curl_close ($ch);
РЕДАКТИРОВАТЬ:
Я реализовал второй шаг, как предложено, но ничего не меняется ..
Ответ Curl по-прежнему не содержит ошибок ..
$ch = curl_init('https://streetviewpublish.googleapis.com/v1/photo/'.$photo_id.'?key='.$_GOOGLE_API['api_key'].'&updateMask=pose.heading');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'authorization: Bearer '.$_GOOGLE_API['access_token'],
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$json_response=curl_exec($ch);
curl_close ($ch);
echo $json_response;
EDIT2: эта процедура работает, но Google API медленно и отредактированные данные будут отображаться в течение нескольких минут.
РЕДАКТИРОВАТЬ3 (решено): GET фотографии (список) имеет некоторые проблемы с чахе. чтобы получить только что обновленное правильное значение, вам нужно запросить GET фото (одиночное), чтобы принудительно обновить кэш.
Попробуйте установить значения во втором шаге с photo.update. Не забудьте установить updateMask для значений.
Других решений пока нет …