2017-07-03 109 views
1

我使用python中的panos(360全景圖像)連接的photo.update請求。我只能將一個站點連接到另一個站點,但我想將一個站點連接到多個站點。我沒有得到一個成功的結果。如何使用Google街景發佈API將一個pano連接到多個panos?

我發出使用Python以下photoUpdate要求:

update_photo_url = 'https://streetviewpublish.googleapis.com/v1/photo/{}?key={}&updateMask=connections'.format("pano_1","AIzdesdfyxscvvvvvvvvvvvvvvv") 

headers = {"Authorization": "Bearer {}".format("ya29.Glx6BO91jWbjzLQKYPvP16fhT-jyOEnIdnoRcZcU9uYCqzwH3Dkuf-qf_kzUc2ykYOyVTZCfaGjOEAScsJK7WgS4NE9gfS6bSobWDIMdfpfY7SPzRMmxi4kfTrmsRQ"), "Content-Length": "0", "Content-Type": "application/json"} 

update_body = { 
[ 
{ 
"photo": { 
    "photoId": { 
    "id": "pano_1" 
    }, 
    "connections": { 
    "target": { 
     "id": "pano_2" 
    }, 
    "target": { 
     "id": "pano_3" 
    } 
    }, 
} 
} 
] 
} 
update_response = requests.put(update_photo_url,headers=headers,json=update_body) 
update_response.text 

錯誤:

{ 
    "error": { 
     "code": 400, 
     "message": "Invalid JSON payload received. Unknown name \"\": Root element must be a message.", 
     "status": "INVALID_ARGUMENT", 
     "details": [ 
      { 
       "@type": "type.googleapis.com/google.rpc.BadRequest", 
       "fieldViolations": [ 
        { 
         "description": "Invalid JSON payload received. Unknown name \"\": Root element must be a message." 
        } 
       ] 
      } 
     ] 
    } 
} 

任何人都知道,如何將多個360張全景相片從源頭全景連接?如果有人能澄清它的可能性,這將是非常好的。提前感謝。

回答

5

我已經看到了你的請求URL是:

https://streetviewpublish.googleapis.com/v1/photo/{}?key={}&updateMask=connections'.format("pano_1","AIzdesdfyxscvvvvvvvvvvvvvvv") 

爲了連接多張照片,你需要使用batchUpdate方法。

HTTP請求

POST https://streetviewpublish.googleapis.com/v1/photos:batchUpdate? 

下面是一個示例請求使用curl:

curl --request POST \ 
    --url 'https://streetviewpublish.googleapis.com/v1/photos:batchUpdate' \ 
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ 
    --header 'Content-Type: application/json' \ 
    --data '{ 
       "updatePhotoRequests": [ 
      { 
      "updateMask": "connections", 
       "photo": { 
       "photoId": { 
        "id": "pano_1" 
       }, 
       "connections": [ 
        { 
         "target": { 
         "id": "pano_2" 
         } 
          }, 
          { 
         "target": { 
         "id": "pano_3" 
          } 
          } 
         ] 
         } 
        } 
       ] 
       }' 

更新:如果我有四個全景和我想連接pano_1 - > pano_2,pano_3和pano_3 - > pano_4那麼什麼是json格式?

您應該將pano_4作爲您的目標連接到pano_3。

{ 
    "updatePhotoRequests": [ 
    { 
     "updateMask": "connections", 
     "photo": { 
     "photoId": { 
      "id": "pano_3" 
     }, 
     "connections": [ 
      { 
      "target": { 
       "id": "pano_4" 
      } 
      }, 
     ] 
     } 
    } 
    ] 
} 

只需注意的是,id應該是上傳照片的photoId

+0

嘿@abielita,如果我有四個panos,我想連接pano_1 - > pano_2,pano_3和pano_3 - > pano_4,那麼json格式是什麼? –

+0

請看我更新的答案。 :) – abielita

+0

我的json格式是否正確?請檢查此鏈接https://jsonblob.com/da14ee1c-60ae-11e7-ae4c-7504bfba11cf –

相關問題