Python 如何使用谷歌街景发布API将一个全景连接到多个全景?
我正在使用python中的photo.updaterequestforpanos(360全景图像)连接。我只能将一个pano连接到另一个pano,但我想将一个pano连接到多个pano。我没有得到一个成功的结果 我已使用Python发送了以下photoUpdate请求:Python 如何使用谷歌街景发布API将一个全景连接到多个全景?,python,json,google-street-view,google-streetview-publish,Python,Json,Google Street View,Google Streetview Publish,我正在使用python中的photo.updaterequestforpanos(360全景图像)连接。我只能将一个pano连接到另一个pano,但我想将一个pano连接到多个pano。我没有得到一个成功的结果 我已使用Python发送了以下photoUpdate请求: update_photo_url = 'https://streetviewpublish.googleapis.com/v1/photo/{}?key={}&updateMask=connections'.format
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."
}
]
}
]
}
}
有人知道如何从源pano连接多个360 pano吗?如果有人能澄清这一可能性,那就太好了。提前谢谢。我看到您的请求URL是:
https://streetviewpublish.googleapis.com/v1/photo/{}?key={}&updateMask=connections'.format("pano_1","AIzdesdfyxscvvvvvvvvvvvvvvv")
要连接多张照片,需要使用以下方法
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,我想连接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
。我看到您的请求URL是:
https://streetviewpublish.googleapis.com/v1/photo/{}?key={}&updateMask=connections'.format("pano_1","AIzdesdfyxscvvvvvvvvvvvvvvv")
要连接多张照片,需要使用以下方法
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,我想连接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
。Hey@abielita,如果我有四个panos,我想连接pano_1->pano_2,pano_3和pano_3->pano_4,那么json格式是什么?我的json格式正确与否?请检查此链接是。这也是我尝试过的json格式,它是有效的。根据你的回答,如果我们有3个panos,我连接pano_1到pano_2和pano_3,那么连接发生在2->1,1->3和3->1之间,但是连接在1->2之间没有显示。我可以知道问题出在哪里吗?您可以尝试使用pano_2作为基本连接,pano_1作为目标连接来发出请求。此外,还可以使用GET验证连接。回复中将列出您的照片及其各自的连接。请注意,如果已发布的全景照片具有相同的lat、lng,则连接照片的服务可能会排除某些链接,因为它们将重叠。你的全景的姿势(航向、纬度、经度)是什么?嘿@abielita,如果我有四个全景,我想连接pano_1->pano_2、pano_3和pano_3->pano_4,那么json格式是什么?我的json格式正确吗?请检查此链接是。这也是我尝试过的json格式,它是有效的。根据你的回答,如果我们有3个panos,我连接pano_1到pano_2和pano_3,那么连接发生在2->1,1->3和3->1之间,但是连接在1->2之间没有显示。我可以知道问题出在哪里吗?您可以尝试使用pano_2作为基本连接,pano_1作为目标连接来发出请求。此外,还可以使用GET验证连接。回复中将列出您的照片及其各自的连接。请注意,如果已发布的全景照片具有相同的lat、lng,则连接照片的服务可能会排除某些链接,因为它们将重叠。你的全景图的姿势(航向、纬度、经度)是什么?