public async Task <GeocodeBatchResponse> GetReverseGeocodeBatchAsync( ReverseGeocodeBatchRequest request) { if (request is null) { return(null); } if (request.Coordinates.Count > MaxBatchCount) { throw new InvalidOperationException($"You're attempting to batch reverse geocode {request.Coordinates.Count()} coordinates, which is more than the permitted limit of {MaxBatchCount}."); } var response = await GetResponseAsync(request); return(JsonConvert.DeserializeObject <GeocodeBatchResponse>(response)); }
/// <summary> /// Reverse geocode a batch of coordinates. /// </summary> /// <param name="request">A GeocodeRequest instance.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>GeocodeBatchResponse</returns> public async Task <GeocodeBatchResponse> ReverseGeocodeBatchAsync( ReverseGeocodeBatchRequest request, CancellationToken cancellationToken = default) { if (request is null) { return(InvalidResponse <GeocodeBatchResponse>()); } if (request.Coordinates.Count() > MaxBatchSize) { return(InvalidBatchSizeResponse <GeocodeBatchResponse>()); } if (cancellationToken.IsCancellationRequested) { return(CancelledResponse2 <GeocodeBatchResponse>()); } return(await RequestAsync <GeocodeBatchResponse>(request, cancellationToken).ConfigureAwait(false)); }