public class OverpassDownloadReader extends BoundingBoxDownloader
Modifier and Type | Class and Description |
---|---|
(package private) static class |
OverpassDownloadReader.OverpassOsmReader |
static class |
OverpassDownloadReader.OverpassOutpoutFormat
Possible Overpass API output format, with the
[out:<directive>] statement. |
BoundingBoxDownloader.MoreNotesException
OsmServerReader.DomParser<R>
OsmConnection.OAuthAccessTokenFetcher
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
DATA_PREFIX |
static BooleanProperty |
FOR_MULTI_FETCH
Property to determine if Overpass API should be used for multi-fetch download.
|
(package private) static java.util.regex.Pattern |
OUTPUT_FORMAT_STATEMENT |
(package private) static java.util.Map<OverpassDownloadReader.OverpassOutpoutFormat,java.lang.Class<? extends AbstractReader>> |
outputFormatReaders |
static StringProperty |
OVERPASS_SERVER
Property for current Overpass server.
|
static ListProperty |
OVERPASS_SERVER_HISTORY
Property for list of known Overpass servers.
|
(package private) java.lang.String |
overpassQuery |
(package private) java.lang.String |
overpassServer |
crosses180th, lat1, lat2, lon1, lon2
gpxParsedProperly
activeConnection, cancel, fetcher, oauthParameters
Constructor and Description |
---|
OverpassDownloadReader(Bounds downloadArea,
java.lang.String overpassServer,
java.lang.String overpassQuery)
Constructs a new
OverpassDownloadReader . |
Modifier and Type | Method and Description |
---|---|
protected void |
adaptRequest(HttpClient request)
Allows subclasses to modify the request.
|
(package private) static java.lang.String |
bbox(double lon1,
double lat1,
double lon2,
double lat2) |
(package private) static java.lang.String |
center(double lon1,
double lat1,
double lon2,
double lat2) |
(package private) static java.lang.String |
date(java.lang.String humanDuration,
java.time.LocalDateTime from) |
(package private) static java.lang.String |
expandExtendedQueries(java.lang.String query)
Evaluates some features of overpass turbo extended query syntax.
|
static java.lang.String |
fixQuery(java.lang.String query)
Fixes Overpass API query to make sure it will be accepted by JOSM.
|
(package private) static java.lang.String |
geocodeArea(java.lang.String area) |
(package private) static java.lang.String |
geocodeBbox(java.lang.String area) |
(package private) static java.lang.String |
geocodeCoords(java.lang.String area) |
(package private) static java.lang.String |
geocodeId(java.lang.String area) |
protected java.lang.String |
getBaseUrl()
Return the base URL for relative URL requests
|
protected java.io.InputStream |
getInputStreamRaw(java.lang.String urlStr,
ProgressMonitor progressMonitor,
java.lang.String reason,
boolean uncompressAccordingToContentDisposition)
Open a connection to the given url (if HTTP, trough a GET request) and return a reader on the input stream
from that connection.
|
protected java.lang.String |
getRequestForBbox(double lon1,
double lat1,
double lon2,
double lat2)
Builds the request part for the bounding box.
|
protected java.lang.String |
getTaskName()
Returns the name of the download task to be displayed in the
ProgressMonitor . |
protected DataSet |
parseDataSet(java.io.InputStream source,
ProgressMonitor progressMonitor)
Parse the given input source and return the dataset.
|
DataSet |
parseOsm(ProgressMonitor progressMonitor)
Download OSM files from somewhere
|
static java.lang.Class<? extends AbstractReader> |
registerOverpassOutpoutFormatReader(OverpassDownloadReader.OverpassOutpoutFormat format,
java.lang.Class<? extends AbstractReader> readerClass)
Registers an OSM reader for the given Overpass output format.
|
private static NameFinder.SearchResult |
searchName(java.lang.String area) |
parseNotes, parseRawGps
fetchData, getAttribute, getInputStream, getInputStream, getInputStreamRaw, getInputStreamRaw, getInputStreamRaw, isDoAuthenticate, isGpxParsedProperly, parseOsm, parseOsmBzip2, parseOsmChange, parseOsmChange, parseOsmChangeBzip2, parseOsmChangeGzip, parseOsmGzip, parseOsmZip, parseRawGps, parseRawGpsBzip2, parseRawNotes, parseRawNotes, parseRawNotesBzip2, setDoAuthenticate
addAuth, addBasicAuthorizationHeader, addOAuthAuthorizationHeader, cancel, isCanceled, obtainAccessToken, retrieveBasicAuthorizationLogin, setOAuthAccessTokenFetcher
public static final StringProperty OVERPASS_SERVER
public static final ListProperty OVERPASS_SERVER_HISTORY
public static final BooleanProperty FOR_MULTI_FETCH
private static final java.lang.String DATA_PREFIX
static final java.util.regex.Pattern OUTPUT_FORMAT_STATEMENT
static final java.util.Map<OverpassDownloadReader.OverpassOutpoutFormat,java.lang.Class<? extends AbstractReader>> outputFormatReaders
final java.lang.String overpassServer
final java.lang.String overpassQuery
public OverpassDownloadReader(Bounds downloadArea, java.lang.String overpassServer, java.lang.String overpassQuery)
OverpassDownloadReader
.downloadArea
- The area to downloadoverpassServer
- The Overpass server to useoverpassQuery
- The Overpass querypublic static final java.lang.Class<? extends AbstractReader> registerOverpassOutpoutFormatReader(OverpassDownloadReader.OverpassOutpoutFormat format, java.lang.Class<? extends AbstractReader> readerClass)
format
- Overpass output formatreaderClass
- OSM reader classformat
, or null
if there was no mappingprotected java.lang.String getBaseUrl()
OsmServerReader
getBaseUrl
in class OsmServerReader
protected java.lang.String getRequestForBbox(double lon1, double lat1, double lon2, double lat2)
BoundingBoxDownloader
getRequestForBbox
in class BoundingBoxDownloader
lon1
- leftlat1
- bottomlon2
- rightlat2
- topstatic java.lang.String expandExtendedQueries(java.lang.String query)
query
- unexpanded querystatic java.lang.String bbox(double lon1, double lat1, double lon2, double lat2)
static java.lang.String center(double lon1, double lat1, double lon2, double lat2)
static java.lang.String date(java.lang.String humanDuration, java.time.LocalDateTime from)
private static NameFinder.SearchResult searchName(java.lang.String area) throws java.io.IOException
java.io.IOException
static java.lang.String geocodeArea(java.lang.String area) throws java.io.IOException
java.io.IOException
static java.lang.String geocodeBbox(java.lang.String area) throws java.io.IOException
java.io.IOException
static java.lang.String geocodeCoords(java.lang.String area) throws java.io.IOException
java.io.IOException
static java.lang.String geocodeId(java.lang.String area) throws java.io.IOException
java.io.IOException
protected java.io.InputStream getInputStreamRaw(java.lang.String urlStr, ProgressMonitor progressMonitor, java.lang.String reason, boolean uncompressAccordingToContentDisposition) throws OsmTransferException
OsmServerReader
null
.getInputStreamRaw
in class OsmServerReader
urlStr
- The exact url to connect to.progressMonitor
- progress monitoring and abort handlerreason
- The reason to show on console. Can be null
if no reason is givenuncompressAccordingToContentDisposition
- Whether to inspect the HTTP header Content-Disposition
for filename
and uncompress a gzip/bzip2/xz/zip stream.null
.OsmTransferException
- if data transfer errors occurprotected void adaptRequest(HttpClient request)
OsmServerReader
adaptRequest
in class OsmServerReader
request
- the prepared requestprotected java.lang.String getTaskName()
BoundingBoxDownloader
ProgressMonitor
.getTaskName
in class BoundingBoxDownloader
protected DataSet parseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException
BoundingBoxDownloader
parseDataSet
in class BoundingBoxDownloader
source
- input streamprogressMonitor
- progress monitorIllegalDataException
- if an error was found while parsing the OSM dataOsmReader.parseDataSet(InputStream, ProgressMonitor)
public DataSet parseOsm(ProgressMonitor progressMonitor) throws OsmTransferException
OsmServerReader
parseOsm
in class BoundingBoxDownloader
progressMonitor
- The progress monitorOsmTransferException
- if any error occurspublic static java.lang.String fixQuery(java.lang.String query)
query
- Overpass query to check