Ошибка при попытке обновить метаданные фотографии с помощью Street View Publish Service Client - Python - PullRequest
0 голосов
/ 06 июля 2018

Я загрузил пару фотографий в Street View и хочу использовать клиентскую библиотеку 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

Я хочу соединить обе фотографии, чтобы добавить целевой идентификатор к фотографии запроса и поле «соединения» для маски update_mask. Результатом после вызова update_photo является следующее сообщение об ошибке:

google.gax.errors.RetryError: RetryError (Исключительная ситуация при повторной попытке метод, который не был классифицирован как переходный, вызванный <_Rendezvous of RPC, завершившийся с помощью (StatusCode.INVALID_ARGUMENT, пустой уровень имя не принято.)>)

Любой намек?

1 Ответ

0 голосов
/ 13 июля 2018

Чтобы установить связь между двумя фотографиями, необходимо использовать Method: photos.batchUpdate.Connections должен быть установлен прямо под 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)
...