AbstractHafasClientInterfaceProvider: Support maxLocations when querying for nearby locations.

Also advance all API versions to 1.14, as required by the maxLoc option to LocGeoPos.
This commit is contained in:
Andreas Schildbach 2018-10-29 20:33:37 +01:00
parent 3742467872
commit 96477de706
13 changed files with 19 additions and 16 deletions

View file

@ -129,7 +129,7 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
public NearbyLocationsResult queryNearbyLocations(final EnumSet<LocationType> types, final Location location, public NearbyLocationsResult queryNearbyLocations(final EnumSet<LocationType> types, final Location location,
final int maxDistance, final int maxLocations) throws IOException { final int maxDistance, final int maxLocations) throws IOException {
if (location.hasLocation()) if (location.hasLocation())
return jsonLocGeoPos(types, location.lat, location.lon, maxDistance); return jsonLocGeoPos(types, location.lat, location.lon, maxDistance, maxLocations);
else else
throw new IllegalArgumentException("cannot handle: " + location); throw new IllegalArgumentException("cannot handle: " + location);
} }
@ -161,15 +161,18 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
} }
protected final NearbyLocationsResult jsonLocGeoPos(final EnumSet<LocationType> types, final int lat, final int lon, protected final NearbyLocationsResult jsonLocGeoPos(final EnumSet<LocationType> types, final int lat, final int lon,
int maxDistance) throws IOException { int maxDistance, int maxLocations) throws IOException {
if (maxDistance == 0) if (maxDistance == 0)
maxDistance = DEFAULT_MAX_DISTANCE; maxDistance = DEFAULT_MAX_DISTANCE;
if (maxLocations == 0)
maxLocations = DEFAULT_MAX_LOCATIONS;
final boolean getStations = types.contains(LocationType.STATION); final boolean getStations = types.contains(LocationType.STATION);
final boolean getPOIs = types.contains(LocationType.POI); final boolean getPOIs = types.contains(LocationType.POI);
final String request = wrapJsonApiRequest("LocGeoPos", "{\"ring\":" // final String request = wrapJsonApiRequest("LocGeoPos", "{\"ring\":" //
+ "{\"cCrd\":{\"x\":" + lon + ",\"y\":" + lat + "},\"maxDist\":" + maxDistance + "}," // + "{\"cCrd\":{\"x\":" + lon + ",\"y\":" + lat + "},\"maxDist\":" + maxDistance + "}," //
+ "\"getStops\":" + getStations + "," // + "\"getStops\":" + getStations + "," //
+ "\"getPOIs\":" + getPOIs + "}", // + "\"getPOIs\":" + getPOIs + "," //
+ "\"maxLoc\":" + maxLocations + "}", //
false); false);
final HttpUrl url = requestUrl(request); final HttpUrl url = requestUrl(request);
@ -400,7 +403,7 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
} }
if (location.hasLocation()) { if (location.hasLocation()) {
final List<Location> locations = jsonLocGeoPos(EnumSet.allOf(LocationType.class), location.lat, final List<Location> locations = jsonLocGeoPos(EnumSet.allOf(LocationType.class), location.lat,
location.lon, 0).locations; location.lon, 0, 0).locations;
if (!locations.isEmpty()) if (!locations.isEmpty())
return locations.get(0); return locations.get(0);
} }

View file

@ -45,7 +45,7 @@ public final class BvgProvider extends AbstractHafasClientInterfaceProvider {
public BvgProvider(final String jsonApiAuthorization) { public BvgProvider(final String jsonApiAuthorization) {
super(NetworkId.BVG, API_BASE, PRODUCTS_MAP); super(NetworkId.BVG, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"BVG\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"BVG\",\"type\":\"AND\"}");
setApiAuthorization(jsonApiAuthorization); setApiAuthorization(jsonApiAuthorization);
setStyles(STYLES); setStyles(STYLES);

View file

@ -33,7 +33,7 @@ public class CmtaProvider extends AbstractHafasClientInterfaceProvider {
public CmtaProvider() { public CmtaProvider() {
super(NetworkId.CMTA, API_BASE, PRODUCTS_MAP); super(NetworkId.CMTA, API_BASE, PRODUCTS_MAP);
setTimeZone("America/Chicago"); setTimeZone("America/Chicago");
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"CMTA\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"CMTA\",\"type\":\"AND\"}");
} }
} }

View file

@ -38,7 +38,7 @@ public class NasaProvider extends AbstractHafasClientInterfaceProvider {
public NasaProvider(final String apiAuthorization) { public NasaProvider(final String apiAuthorization) {
super(NetworkId.NASA, API_BASE, PRODUCTS_MAP); super(NetworkId.NASA, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"NASA\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"NASA\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
} }

View file

@ -36,7 +36,7 @@ public class OoevvProvider extends AbstractHafasClientInterfaceProvider {
public OoevvProvider(final String apiAuthorization) { public OoevvProvider(final String apiAuthorization) {
super(NetworkId.OOEVV, API_BASE, PRODUCTS_MAP); super(NetworkId.OOEVV, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_ooevv\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"VAO\",\"l\":\"vs_ooevv\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
httpClient.setSslAcceptAllHostnames(true); httpClient.setSslAcceptAllHostnames(true);

View file

@ -42,7 +42,7 @@ public class ShProvider extends AbstractHafasClientInterfaceProvider {
public ShProvider(final String apiAuthorization) { public ShProvider(final String apiAuthorization) {
super(NetworkId.SH, API_BASE, PRODUCTS_MAP); super(NetworkId.SH, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"NAHSH\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"NAHSH\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
setStyles(STYLES); setStyles(STYLES);

View file

@ -39,7 +39,7 @@ public class SvvProvider extends AbstractHafasClientInterfaceProvider {
public SvvProvider(final String apiAuthorization) { public SvvProvider(final String apiAuthorization) {
super(NetworkId.SVV, API_BASE, PRODUCTS_MAP); super(NetworkId.SVV, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_svv\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"VAO\",\"l\":\"vs_svv\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
setStyles(STYLES); setStyles(STYLES);

View file

@ -39,7 +39,7 @@ public class VaoProvider extends AbstractHafasClientInterfaceProvider {
public VaoProvider(final String apiAuthorization) { public VaoProvider(final String apiAuthorization) {
super(NetworkId.VAO, API_BASE, PRODUCTS_MAP); super(NetworkId.VAO, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvv\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvv\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
setStyles(STYLES); setStyles(STYLES);

View file

@ -47,7 +47,7 @@ public class VbnProvider extends AbstractHafasClientInterfaceProvider {
public VbnProvider(final String apiAuthorization) { public VbnProvider(final String apiAuthorization) {
super(NetworkId.VBN, API_BASE, PRODUCTS_MAP); super(NetworkId.VBN, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"VBN\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"VBN\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
setStyles(STYLES); setStyles(STYLES);

View file

@ -36,7 +36,7 @@ public class VmobilProvider extends AbstractHafasClientInterfaceProvider {
public VmobilProvider(final String apiAuthorization) { public VmobilProvider(final String apiAuthorization) {
super(NetworkId.VMOBIL, API_BASE, PRODUCTS_MAP); super(NetworkId.VMOBIL, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvv\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvv\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
} }

View file

@ -35,7 +35,7 @@ public class VmtProvider extends AbstractHafasClientInterfaceProvider {
public VmtProvider(final String jsonApiAuthorization) { public VmtProvider(final String jsonApiAuthorization) {
super(NetworkId.VMT, API_BASE, PRODUCTS_MAP); super(NetworkId.VMT, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"name\":\"VMT\",\"type\":\"AND\"}"); setApiClient("{\"name\":\"VMT\",\"type\":\"AND\"}");
setApiAuthorization(jsonApiAuthorization); setApiAuthorization(jsonApiAuthorization);
} }

View file

@ -39,7 +39,7 @@ public class VorProvider extends AbstractHafasClientInterfaceProvider {
public VorProvider(final String apiAuthorization) { public VorProvider(final String apiAuthorization) {
super(NetworkId.VOR, API_BASE, PRODUCTS_MAP); super(NetworkId.VOR, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_anachb\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"VAO\",\"l\":\"vs_anachb\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
setStyles(STYLES); setStyles(STYLES);

View file

@ -36,7 +36,7 @@ public class VvtProvider extends AbstractHafasClientInterfaceProvider {
public VvtProvider(final String apiAuthorization) { public VvtProvider(final String apiAuthorization) {
super(NetworkId.VVT, API_BASE, PRODUCTS_MAP); super(NetworkId.VVT, API_BASE, PRODUCTS_MAP);
setApiVersion("1.13"); setApiVersion("1.14");
setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvt\",\"type\":\"AND\"}"); setApiClient("{\"id\":\"VAO\",\"l\":\"vs_vvt\",\"type\":\"AND\"}");
setApiAuthorization(apiAuthorization); setApiAuthorization(apiAuthorization);
} }