protected List <KeyValuePair <string, string> > GetAvailableVehicleParams(string market, double latitude, double longitude, int?searchRadius = null, IList <int> fleetIds = null, bool returnAll = false, bool wheelchairAccessibleOnly = false, bool usePolygon = true) { if (fleetIds != null && !fleetIds.Any()) { // No fleetId allowed for available vehicles return(null); } var searchRadiusInKm = (searchRadius ?? Settings.ServerData.AvailableVehicles.Radius) / 1000; var @params = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("includeEntities", "true"), new KeyValuePair <string, string>("market", market), new KeyValuePair <string, string>("meterState", ((int)MeterStates.ForHire).ToString()), new KeyValuePair <string, string>("logonState", ((int)LogonStates.LoggedOn).ToString()) }; if (wheelchairAccessibleOnly) { @params.Add(new KeyValuePair <string, string>("vehicleType", "1")); } if (usePolygon) { var vertices = GeographyHelper.CirclePointsFromRadius(latitude, longitude, searchRadiusInKm, 10) .Select(vertex => string.Format("{0},{1}", vertex.Item1, vertex.Item2)) .Select(point => new KeyValuePair <string, string>("poly", point)); @params.AddRange(vertices); } else { @params.Add(new KeyValuePair <string, string>("lat", latitude.ToString(CultureInfo.InvariantCulture))); @params.Add(new KeyValuePair <string, string>("lon", longitude.ToString(CultureInfo.InvariantCulture))); @params.Add(new KeyValuePair <string, string>("rad", (searchRadiusInKm * 1000).ToString())); } if (fleetIds != null) { @params.AddRange(fleetIds.Select(fleetId => new KeyValuePair <string, string>("fleet", fleetId.ToString()))); } return(@params); }