尝试使用街景发布服务客户端更新照片元数据时出错-Python

时间:2018-07-06 08:37:09

标签: python google-maps google-cloud-platform google-street-view google-streetview-publish

我已经在街景视图中上传了几张照片,并且我想使用Python客户端库来更新其元数据。在下面找到我的代码段:

from google.proto.streetview.publish.v1 import resources_pb2
from google.streetview.publish.v1 import street_view_publish_service_client as client
from google.protobuf import field_mask_pb2

streetview_client = client.StreetViewPublishServiceClient(credentials=credentials)

for photo in streetview_client.list_photos(0, ''):
    con = resources_pb2.Connection()
    target_id = resources_pb2.PhotoId()
    target_id.id = "photo_id"
    con.target.id = target_id.id
    photo.connections.extend([con])
    update_mask = field_mask_pb2.FieldMask()
    update_mask.FromJsonString("connections")
    response = streetview_client.update_photo(photo, update_mask)
    break

我想同时连接两张照片,所以我将目标ID添加到查询照片,并将“连接”字段添加到update_mask。 update_photo调用之后的结果是以下错误消息:

  

google.gax.errors.RetryError:RetryError(重试中发生异常   由于<_Rendezvous of   以(StatusCode.INVALID_ARGUMENT,空级别终止的RPC   名称不被接受。)>)

有任何提示吗?

1 个答案:

答案 0 :(得分:0)

要在两张照片之间建立联系,您需要使用Method: photos.batchUpdateConnections应该设置在Photo下。另外,请注意您需要实现的Photo的元数据。

这是示例代码段。

pose = resources_pb2.Pose(level=resources_pb2.Level(name="lvl", number=0))
connection1 = resources_pb2.Connection(target=resources_pb2.PhotoId(id="idOfConnection1"))
photo = resources_pb2.Photo(connections=[connection1], pose=pose)