Changeset 11009 in josm for trunk/src/org/openstreetmap/josm/io/OverpassDownloadReader.java
- Timestamp:
- 2016-09-17T15:19:44+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/OverpassDownloadReader.java
r11003 r11009 8 8 import java.util.EnumMap; 9 9 import java.util.List; 10 import java.util.NoSuchElementException; 10 11 import java.util.regex.Matcher; 11 12 import java.util.regex.Pattern; … … 58 59 return super.getRequestForBbox(lon1, lat1, lon2, lat2); 59 60 else { 60 final String overpassQuery = this.overpassQuery.replace("{{bbox}}", lat1 + "," + lon1 + "," + lat2 + "," + lon2);61 final String expandedOverpassQuery = expandExtendedQueries( overpassQuery);61 final String query = this.overpassQuery.replace("{{bbox}}", lat1 + "," + lon1 + "," + lat2 + "," + lon2); 62 final String expandedOverpassQuery = expandExtendedQueries(query); 62 63 return "interpreter?data=" + Utils.encodeUrl(expandedOverpassQuery); 63 64 } … … 67 68 * Evaluates some features of overpass turbo extended query syntax. 68 69 * See https://wiki.openstreetmap.org/wiki/Overpass_turbo/Extended_Overpass_Turbo_Queries 70 * @param query unexpanded query 71 * @return expanded query 69 72 */ 70 73 static String expandExtendedQueries(String query) { … … 77 80 matcher.appendReplacement(sb, geocodeArea(matcher.group(2))); 78 81 } 79 } catch ( Exception ex) {82 } catch (UncheckedParseException ex) { 80 83 final String msg = tr("Failed to evaluate {0}", matcher.group()); 81 84 Main.warn(ex, msg); … … 91 94 final EnumMap<OsmPrimitiveType, Long> idOffset = new EnumMap<>(OsmPrimitiveType.class); 92 95 idOffset.put(OsmPrimitiveType.NODE, 0L); 93 idOffset.put(OsmPrimitiveType.WAY, 2 400000000L);94 idOffset.put(OsmPrimitiveType.RELATION, 3 600000000L);96 idOffset.put(OsmPrimitiveType.WAY, 2_400_000_000L); 97 idOffset.put(OsmPrimitiveType.RELATION, 3_600_000_000L); 95 98 try { 96 99 final List<NameFinder.SearchResult> results = NameFinder.queryNominatim(area); 97 final PrimitiveId osmId = results.iterator().next(). osmId;100 final PrimitiveId osmId = results.iterator().next().getOsmId(); 98 101 return String.format("area(%d)", osmId.getUniqueId() + idOffset.get(osmId.getType())); 99 } catch (IOException ex) {102 } catch (IOException | NoSuchElementException ex) { 100 103 throw new UncheckedParseException(ex); 101 104 } … … 144 147 @Override 145 148 protected void parseUnknown(boolean printWarning) throws XMLStreamException { 146 if ("remark".equals(parser.getLocalName())) { 147 if (parser.getEventType() == XMLStreamConstants.START_ELEMENT) { 148 final String text = parser.getElementText(); 149 if (text.contains("runtime error")) { 150 throw new XMLStreamException(text); 151 } 149 if ("remark".equals(parser.getLocalName()) && parser.getEventType() == XMLStreamConstants.START_ELEMENT) { 150 final String text = parser.getElementText(); 151 if (text.contains("runtime error")) { 152 throw new XMLStreamException(text); 152 153 } 153 154 }
Note:
See TracChangeset
for help on using the changeset viewer.