1

Ich versuche, sphärische Bilder in der Street View mit Publish Api hochzuladen. Upload von Bilddaten und Ort Zuordnung funktioniert gut, aber immer wenn ich versuche, Kopf- und GPS-Position Daten auf den Image-Server hochladen antwortet "OK", aber dann wurde keine Überschrift oder Position mit dem Bild zugeordnet.Hochladen von Panoramabild mit Überschrift und GPS mit Hilfe von Street View Publish API wird nicht funktionieren

Hier ist der PHP-Code, den ich für den letzten Schritt des Info-Uploads verwende, ich weiß wirklich nicht, wo ich falsch liege.

$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); 

EDIT:

ich den zweiten Schritt implementiert haben, wie vorgeschlagen, aber es ändert sich nichts .. Locken Antwort noch immer keinen Fehler enthält ..

$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: Dieses Verfahren funktioniert aber google apis sind langsam und bearbeitete Daten werden in Minuten angezeigt.

EDIT3 (Gelöst): GET Fotos (Liste) hat einige Chache-Ausgabe. Um den korrekten Wert zu erhalten, müssen Sie GET photo (single) anfordern, um ein effektives Cache-Update zu erzwingen.

Antwort

1

Versuchen Sie, die Werte in einem zweiten Schritt mit photo.update einzustellen. Vergessen Sie nicht, die updateMask für die Werte zu setzen.

+0

Ich habe den zweiten Schritt wie vorgeschlagen implementiert, aber nichts ändert sich .. siehe in Hauptfrage bearbeiten – recursio

+0

Wie überprüfen Sie die Pose-Daten? Mit einer photo.get Anfrage? –

+0

Ich überprüfe Daten durch eine GET-Fotos Anfrage, um eine Liste von Fotos und zugehörigen Daten zu erhalten. – recursio

Verwandte Themen