def read_routeguide_db(path): feature_list = [] with open(path) as f: for item in json.load(f): feature = routeguide_pb2.Feature( name=item['name'], location=routeguide_pb2.Point( latitude=item['location']['latitude'], longitude=item['location']['longitude'])) feature_list.append(feature) return feature_list
def run(): channel = grpc.insecure_channel('localhost:50051') stub = routeguide_pb2_grpc.RouteGuideStub(channel) print('---------------GetFeature----------------') response = stub.GetFeature( routeguide_pb2.Point(latitude=409146138, longitude=-746188906)) get_feature(response) response = stub.GetFeature(routeguide_pb2.Point(latitude=1, longitude=1)) get_feature(response) print('---------------ListFeature----------------') response = stub.ListFeature( routeguide_pb2.Rectangle( lo=routeguide_pb2.Point(latitude=400000000, longitude=-750000000), hi=routeguide_pb2.Point(latitude=420000000, longitude=-730000000))) for feature in response: print('Feature called {name} at {location}'.format( name=feature.name, location=feature.location)) print('---------------RecordRoute----------------') feature_list = routeguide_db.read_routeguide_db('routeguide_db.json') route_iterator = generate_route(feature_list) response = stub.RecordRoute(route_iterator) print( 'point count: {point_count} feature count: {feature_count} distance: {distance} elapsed time:{elapsed_time}' .format(point_count=response.point_count, feature_count=response.feature_count, distance=response.distance, elapsed_time=response.elapsed_time)) print('---------------RouteChat----------------') response = stub.RouteChat(generate_route_note()) for msg in response: print('receive message {message} location {location}'.format( message=msg.message, location=msg.location))
def make_route_note(message, latitude, longitude): return routeguide_pb2.RouteNote( message=message, location=routeguide_pb2.Point(latitude=latitude, longitude=longitude))