【问题标题】:How to connect one pano to multiple panos using Google street view publish API?如何使用谷歌街景发布 API 将一个全景图连接到多个全景图?
【发布时间】:2017-07-03 13:32:47
【问题描述】:

我在 python 中使用 photo.update 请求进行 panos(360 全景图像)连接。我只能将一个全景图连接到另一个全景图,但我想将一个全景图连接到多个全景图。我没有得到成功的结果。

我使用 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 全景?如果有人能澄清它的可能性,那就太好了。提前谢谢。

【问题讨论】:

    标签: python json google-street-view google-streetview-publish


    【解决方案1】:

    我看到您的请求网址是:

    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,我想连接 pano_1 -> pano_2、pano_3 和 pano_3 -> pano_4 那么 json 格式是什么? p>

    您应该将 pano_4 作为连接到 pano_3 的目标。

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

    请注意,id 应该是上传照片的photoId

    【讨论】:

    • 嘿@abielita,如果我有四个panos,我想连接pano_1 -> pano_2、pano_3 和pano_3 -> pano_4,那么json 格式是什么?
    • 我的json格式是否正确?请查看此链接jsonblob.com/da14ee1c-60ae-11e7-ae4c-7504bfba11cf
    • 是的。这也是我尝试过的json格式,它可以工作。
    • 根据您的回答,如果我们有 3 个 panos,我将 pano_1 连接到 pano_2 和 pano_3,所以连接发生在 2 -> 1、1 -> 3 和 3 -> 1 但连接未显示在 1 -> 2 之间。我能知道是什么问题吗?
    • 您可以尝试使用 pano_2 作为基础和 pano_1 作为目标连接来发出请求。此外,您可以使用 GET 验证连接。响应将包含您的照片列表以及它们各自的连接。请注意,如果发布的全景照片具有相同的 lat,lng,则连接照片的服务可能会排除某些链接,因为它们会重叠。您的全景图的姿势(航向、纬度、经度)是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    相关资源
    最近更新 更多