mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-19 16:59:51 +00:00
Migrate Copenhagen to auto-complete and query for nearby stations via getstops endpoint.
This commit is contained in:
parent
b265dd03cb
commit
7ddac5813d
2 changed files with 4 additions and 91 deletions
|
@ -417,73 +417,6 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
}
|
||||
}
|
||||
|
||||
protected final List<Location> xmlLocationList(final String uri) throws IOException
|
||||
{
|
||||
Reader reader = null;
|
||||
|
||||
try
|
||||
{
|
||||
reader = new InputStreamReader(ParserUtils.scrapeInputStream(uri), UTF_8);
|
||||
|
||||
final XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
|
||||
final XmlPullParser pp = factory.newPullParser();
|
||||
pp.setInput(reader);
|
||||
|
||||
final List<Location> results = new ArrayList<Location>();
|
||||
|
||||
pp.require(XmlPullParser.START_DOCUMENT, null, null);
|
||||
pp.next();
|
||||
|
||||
XmlPullUtil.enter(pp, "LocationList");
|
||||
|
||||
while (XmlPullUtil.test(pp, "StopLocation") || XmlPullUtil.test(pp, "CoordLocation"))
|
||||
{
|
||||
final String name = ParserUtils.resolveEntities(XmlPullUtil.attr(pp, "name"));
|
||||
final int lon = XmlPullUtil.intAttr(pp, "x");
|
||||
final int lat = XmlPullUtil.intAttr(pp, "y");
|
||||
|
||||
if (XmlPullUtil.test(pp, "StopLocation"))
|
||||
{
|
||||
final String id = XmlPullUtil.attr(pp, "id");
|
||||
final String[] placeAndName = splitPlaceAndName(name);
|
||||
results.add(new Location(LocationType.STATION, id, lat, lon, placeAndName[0], placeAndName[1]));
|
||||
}
|
||||
else
|
||||
{
|
||||
final String type = XmlPullUtil.attr(pp, "type");
|
||||
if ("POI".equals(type))
|
||||
results.add(new Location(LocationType.POI, null, lat, lon, null, name));
|
||||
else if ("ADR".equals(type))
|
||||
results.add(new Location(LocationType.ADDRESS, null, lat, lon, null, name));
|
||||
else
|
||||
throw new IllegalStateException("unknown type " + type + " on " + uri);
|
||||
}
|
||||
|
||||
if (pp.isEmptyElementTag())
|
||||
{
|
||||
XmlPullUtil.next(pp);
|
||||
}
|
||||
else
|
||||
{
|
||||
XmlPullUtil.enter(pp);
|
||||
XmlPullUtil.exit(pp);
|
||||
}
|
||||
}
|
||||
XmlPullUtil.exit(pp, "LocationList");
|
||||
|
||||
return results;
|
||||
}
|
||||
catch (final XmlPullParserException x)
|
||||
{
|
||||
throw new RuntimeException(x);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (reader != null)
|
||||
reader.close();
|
||||
}
|
||||
}
|
||||
|
||||
private static final Pattern P_XML_MLC_REQ_ID = Pattern.compile(".*?@L=0*(\\d+)@.*?");
|
||||
private static final Pattern P_XML_MLC_REQ_LONLAT = Pattern.compile(".*?@X=(-?\\d+)@Y=(-?\\d+)@.*?");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue