diff --git a/OsmAnd-java/src/net/osmand/binary/OsmandOdb.java b/OsmAnd-java/src/net/osmand/binary/OsmandOdb.java index 63ecfda009..0b96723857 100644 --- a/OsmAnd-java/src/net/osmand/binary/OsmandOdb.java +++ b/OsmAnd-java/src/net/osmand/binary/OsmandOdb.java @@ -29394,6 +29394,38 @@ public final class OsmandOdb { */ net.osmand.binary.OsmandOdb.TransportRouteStopOrBuilder getReverseStopsOrBuilder( int index); + + // optional bytes directGeometry = 17; + /** + * optional bytes directGeometry = 17; + * + *
+     * array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5)
+     * first x,y - 31 coordinates (>>5), next points is delta to previous
+     * point, line or outer polygon coordinates
+     * 
+ */ + boolean hasDirectGeometry(); + /** + * optional bytes directGeometry = 17; + * + *
+     * array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5)
+     * first x,y - 31 coordinates (>>5), next points is delta to previous
+     * point, line or outer polygon coordinates
+     * 
+ */ + com.google.protobuf.ByteString getDirectGeometry(); + + // optional bytes reverseGeometry = 18; + /** + * optional bytes reverseGeometry = 18; + */ + boolean hasReverseGeometry(); + /** + * optional bytes reverseGeometry = 18; + */ + com.google.protobuf.ByteString getReverseGeometry(); } /** * Protobuf type {@code OsmAnd.OBF.TransportRoute} @@ -29497,6 +29529,16 @@ public final class OsmandOdb { reverseStops_.add(input.readMessage(net.osmand.binary.OsmandOdb.TransportRouteStop.PARSER, extensionRegistry)); break; } + case 138: { + bitField0_ |= 0x00000080; + directGeometry_ = input.readBytes(); + break; + } + case 146: { + bitField0_ |= 0x00000100; + reverseGeometry_ = input.readBytes(); + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -29794,6 +29836,50 @@ public final class OsmandOdb { return reverseStops_.get(index); } + // optional bytes directGeometry = 17; + public static final int DIRECTGEOMETRY_FIELD_NUMBER = 17; + private com.google.protobuf.ByteString directGeometry_; + /** + * optional bytes directGeometry = 17; + * + *
+     * array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5)
+     * first x,y - 31 coordinates (>>5), next points is delta to previous
+     * point, line or outer polygon coordinates
+     * 
+ */ + public boolean hasDirectGeometry() { + return ((bitField0_ & 0x00000080) == 0x00000080); + } + /** + * optional bytes directGeometry = 17; + * + *
+     * array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5)
+     * first x,y - 31 coordinates (>>5), next points is delta to previous
+     * point, line or outer polygon coordinates
+     * 
+ */ + public com.google.protobuf.ByteString getDirectGeometry() { + return directGeometry_; + } + + // optional bytes reverseGeometry = 18; + public static final int REVERSEGEOMETRY_FIELD_NUMBER = 18; + private com.google.protobuf.ByteString reverseGeometry_; + /** + * optional bytes reverseGeometry = 18; + */ + public boolean hasReverseGeometry() { + return ((bitField0_ & 0x00000100) == 0x00000100); + } + /** + * optional bytes reverseGeometry = 18; + */ + public com.google.protobuf.ByteString getReverseGeometry() { + return reverseGeometry_; + } + private void initFields() { id_ = 0L; type_ = 0; @@ -29804,6 +29890,8 @@ public final class OsmandOdb { distance_ = 0; directStops_ = java.util.Collections.emptyList(); reverseStops_ = java.util.Collections.emptyList(); + directGeometry_ = com.google.protobuf.ByteString.EMPTY; + reverseGeometry_ = com.google.protobuf.ByteString.EMPTY; } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -29860,6 +29948,12 @@ public final class OsmandOdb { for (int i = 0; i < reverseStops_.size(); i++) { output.writeMessage(16, reverseStops_.get(i)); } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + output.writeBytes(17, directGeometry_); + } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + output.writeBytes(18, reverseGeometry_); + } getUnknownFields().writeTo(output); } @@ -29905,6 +29999,14 @@ public final class OsmandOdb { size += com.google.protobuf.CodedOutputStream .computeMessageSize(16, reverseStops_.get(i)); } + if (((bitField0_ & 0x00000080) == 0x00000080)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(17, directGeometry_); + } + if (((bitField0_ & 0x00000100) == 0x00000100)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(18, reverseGeometry_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -30049,6 +30151,10 @@ public final class OsmandOdb { } else { reverseStopsBuilder_.clear(); } + directGeometry_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000200); + reverseGeometry_ = com.google.protobuf.ByteString.EMPTY; + bitField0_ = (bitField0_ & ~0x00000400); return this; } @@ -30123,6 +30229,14 @@ public final class OsmandOdb { } else { result.reverseStops_ = reverseStopsBuilder_.build(); } + if (((from_bitField0_ & 0x00000200) == 0x00000200)) { + to_bitField0_ |= 0x00000080; + } + result.directGeometry_ = directGeometry_; + if (((from_bitField0_ & 0x00000400) == 0x00000400)) { + to_bitField0_ |= 0x00000100; + } + result.reverseGeometry_ = reverseGeometry_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -30214,6 +30328,12 @@ public final class OsmandOdb { } } } + if (other.hasDirectGeometry()) { + setDirectGeometry(other.getDirectGeometry()); + } + if (other.hasReverseGeometry()) { + setReverseGeometry(other.getReverseGeometry()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -31089,6 +31209,102 @@ public final class OsmandOdb { return reverseStopsBuilder_; } + // optional bytes directGeometry = 17; + private com.google.protobuf.ByteString directGeometry_ = com.google.protobuf.ByteString.EMPTY; + /** + * optional bytes directGeometry = 17; + * + *
+       * array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5)
+       * first x,y - 31 coordinates (>>5), next points is delta to previous
+       * point, line or outer polygon coordinates
+       * 
+ */ + public boolean hasDirectGeometry() { + return ((bitField0_ & 0x00000200) == 0x00000200); + } + /** + * optional bytes directGeometry = 17; + * + *
+       * array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5)
+       * first x,y - 31 coordinates (>>5), next points is delta to previous
+       * point, line or outer polygon coordinates
+       * 
+ */ + public com.google.protobuf.ByteString getDirectGeometry() { + return directGeometry_; + } + /** + * optional bytes directGeometry = 17; + * + *
+       * array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5)
+       * first x,y - 31 coordinates (>>5), next points is delta to previous
+       * point, line or outer polygon coordinates
+       * 
+ */ + public Builder setDirectGeometry(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000200; + directGeometry_ = value; + onChanged(); + return this; + } + /** + * optional bytes directGeometry = 17; + * + *
+       * array of delta x,y sint32 (CodedIinputStream) >> 5 (precision 31 >> 5)
+       * first x,y - 31 coordinates (>>5), next points is delta to previous
+       * point, line or outer polygon coordinates
+       * 
+ */ + public Builder clearDirectGeometry() { + bitField0_ = (bitField0_ & ~0x00000200); + directGeometry_ = getDefaultInstance().getDirectGeometry(); + onChanged(); + return this; + } + + // optional bytes reverseGeometry = 18; + private com.google.protobuf.ByteString reverseGeometry_ = com.google.protobuf.ByteString.EMPTY; + /** + * optional bytes reverseGeometry = 18; + */ + public boolean hasReverseGeometry() { + return ((bitField0_ & 0x00000400) == 0x00000400); + } + /** + * optional bytes reverseGeometry = 18; + */ + public com.google.protobuf.ByteString getReverseGeometry() { + return reverseGeometry_; + } + /** + * optional bytes reverseGeometry = 18; + */ + public Builder setReverseGeometry(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000400; + reverseGeometry_ = value; + onChanged(); + return this; + } + /** + * optional bytes reverseGeometry = 18; + */ + public Builder clearReverseGeometry() { + bitField0_ = (bitField0_ & ~0x00000400); + reverseGeometry_ = getDefaultInstance().getReverseGeometry(); + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:OsmAnd.OBF.TransportRoute) } @@ -57688,88 +57904,89 @@ public final class OsmandOdb { " \003(\t\022\030\n\020attributeTagIds2\030\021 \003(\r\022\030\n\020attrib" + "uteValues2\030\022 \003(\t\"=\n\017TransportRoutes\022*\n\006r" + "outes\030\006 \003(\0132\032.OsmAnd.OBF.TransportRoute\"" + - "\345\001\n\016TransportRoute\022\n\n\002id\030\001 \002(\004\022\014\n\004type\030\003" + + "\226\002\n\016TransportRoute\022\n\n\002id\030\001 \002(\004\022\014\n\004type\030\003" + " \001(\r\022\020\n\010operator\030\004 \001(\r\022\013\n\003ref\030\005 \001(\t\022\014\n\004n" + "ame\030\006 \001(\r\022\017\n\007name_en\030\007 \001(\r\022\020\n\010distance\030\010" + " \001(\r\0223\n\013directStops\030\017 \003(\0132\036.OsmAnd.OBF.T" + "ransportRouteStop\0224\n\014reverseStops\030\020 \003(\0132", - "\036.OsmAnd.OBF.TransportRouteStop\"W\n\022Trans" + - "portRouteStop\022\n\n\002id\030\001 \002(\022\022\n\n\002dx\030\002 \002(\021\022\n\n" + - "\002dy\030\003 \002(\021\022\014\n\004name\030\006 \002(\r\022\017\n\007name_en\030\007 \001(\r" + - "\"b\n\rTransportStop\022\n\n\002dx\030\001 \002(\021\022\n\n\002dy\030\002 \002(" + - "\021\022\n\n\002id\030\005 \002(\022\022\014\n\004name\030\006 \002(\r\022\017\n\007name_en\030\007" + - " \001(\r\022\016\n\006routes\030\020 \003(\r\"\272\001\n\022TransportStopsT" + - "ree\022\014\n\004left\030\001 \002(\021\022\r\n\005right\030\002 \002(\021\022\013\n\003top\030" + - "\003 \002(\021\022\016\n\006bottom\030\004 \002(\021\0220\n\010subtrees\030\007 \003(\0132" + - "\036.OsmAnd.OBF.TransportStopsTree\022(\n\005leafs" + - "\030\010 \003(\0132\031.OsmAnd.OBF.TransportStop\022\016\n\006bas", - "eId\030\020 \001(\004\"\256\001\n\024OsmAndTransportIndex\022\014\n\004na" + - "me\030\001 \001(\t\022+\n\006routes\030\003 \001(\0132\033.OsmAnd.OBF.Tr" + - "ansportRoutes\022-\n\005stops\030\006 \001(\0132\036.OsmAnd.OB" + - "F.TransportStopsTree\022,\n\013stringTable\030\t \002(" + - "\0132\027.OsmAnd.OBF.StringTable\"\312\002\n\016OsmAndPoi" + - "Index\022\014\n\004name\030\001 \002(\t\022-\n\nboundaries\030\002 \002(\0132" + - "\031.OsmAnd.OBF.OsmAndTileBox\0228\n\017categories" + - "Table\030\003 \003(\0132\037.OsmAnd.OBF.OsmAndCategoryT" + - "able\0221\n\tnameIndex\030\004 \001(\0132\036.OsmAnd.OBF.Osm" + - "AndPoiNameIndex\0226\n\rsubtypesTable\030\005 \001(\0132\037", - ".OsmAnd.OBF.OsmAndSubtypesTable\022\'\n\005boxes" + - "\030\006 \003(\0132\030.OsmAnd.OBF.OsmAndPoiBox\022-\n\007poiD" + - "ata\030\t \003(\0132\034.OsmAnd.OBF.OsmAndPoiBoxData\"" + - "\331\001\n\022OsmAndPoiNameIndex\022-\n\005table\030\003 \002(\0132\036." + - "OsmAnd.OBF.IndexedStringTable\022C\n\004data\030\005 " + - "\003(\01325.OsmAnd.OBF.OsmAndPoiNameIndex.OsmA" + - "ndPoiNameIndexData\032O\n\026OsmAndPoiNameIndex" + - "Data\0225\n\005atoms\030\003 \003(\0132&.OsmAnd.OBF.OsmAndP" + - "oiNameIndexDataAtom\"Q\n\032OsmAndPoiNameInde" + - "xDataAtom\022\014\n\004zoom\030\002 \001(\r\022\t\n\001x\030\003 \001(\r\022\t\n\001y\030", - "\004 \001(\r\022\017\n\007shiftTo\030\016 \001(\007\">\n\023OsmAndCategory" + - "Table\022\020\n\010category\030\001 \002(\t\022\025\n\rsubcategories" + - "\030\003 \003(\t\"E\n\023OsmAndSubtypesTable\022.\n\010subtype" + - "s\030\004 \003(\0132\034.OsmAnd.OBF.OsmAndPoiSubtype\"\205\001" + - "\n\020OsmAndPoiSubtype\022\014\n\004name\030\001 \002(\t\022\017\n\007tagn" + - "ame\030\002 \001(\t\022\016\n\006isText\030\003 \002(\010\022\021\n\tfrequency\030\005" + - " \001(\r\022\031\n\021subtypeValuesSize\030\006 \001(\r\022\024\n\014subty" + - "peValue\030\010 \003(\t\"\255\001\n\014OsmAndPoiBox\022\014\n\004zoom\030\001" + - " \002(\r\022\014\n\004left\030\002 \002(\021\022\013\n\003top\030\003 \002(\021\0223\n\ncateg" + - "ories\030\004 \001(\0132\037.OsmAnd.OBF.OsmAndPoiCatego", - "ries\022*\n\010subBoxes\030\n \003(\0132\030.OsmAnd.OBF.OsmA" + - "ndPoiBox\022\023\n\013shiftToData\030\016 \001(\007\"@\n\023OsmAndP" + - "oiCategories\022\022\n\ncategories\030\003 \003(\r\022\025\n\rsubc" + - "ategories\030\005 \003(\r\"i\n\020OsmAndPoiBoxData\022\014\n\004z" + - "oom\030\001 \001(\r\022\t\n\001x\030\002 \001(\r\022\t\n\001y\030\003 \001(\r\0221\n\007poiDa" + - "ta\030\005 \003(\0132 .OsmAnd.OBF.OsmAndPoiBoxDataAt" + - "om\"\360\001\n\024OsmAndPoiBoxDataAtom\022\n\n\002dx\030\002 \002(\021\022" + - "\n\n\002dy\030\003 \002(\021\022\022\n\ncategories\030\004 \003(\r\022\025\n\rsubca" + - "tegories\030\005 \003(\r\022\014\n\004name\030\006 \001(\t\022\016\n\006nameEn\030\007" + - " \001(\t\022\n\n\002id\030\010 \001(\004\022\024\n\014openingHours\030\n \001(\t\022\014", - "\n\004site\030\013 \001(\t\022\r\n\005phone\030\014 \001(\t\022\014\n\004note\030\r \001(" + - "\t\022\026\n\016textCategories\030\016 \003(\r\022\022\n\ntextValues\030" + - "\017 \003(\t\"\032\n\007IdTable\022\017\n\007routeId\030\001 \003(\022\"F\n\017Res" + - "trictionData\022\014\n\004type\030\001 \002(\005\022\014\n\004from\030\002 \002(\005" + - "\022\n\n\002to\030\003 \002(\005\022\013\n\003via\030\004 \001(\005\"x\n\tRouteData\022\016" + - "\n\006points\030\001 \002(\014\022\022\n\npointTypes\030\004 \001(\014\022\022\n\npo" + - "intNames\030\005 \001(\014\022\r\n\005types\030\007 \002(\014\022\017\n\007routeId" + - "\030\014 \002(\005\022\023\n\013stringNames\030\016 \001(\014\"\304\005\n\022OsmAndRo" + - "utingIndex\022\014\n\004name\030\001 \002(\t\022?\n\005rules\030\002 \003(\0132" + - "0.OsmAnd.OBF.OsmAndRoutingIndex.RouteEnc", - "odingRule\022>\n\trootBoxes\030\003 \003(\0132+.OsmAnd.OB" + - "F.OsmAndRoutingIndex.RouteDataBox\022A\n\014bas" + - "emapBoxes\030\004 \003(\0132+.OsmAnd.OBF.OsmAndRouti" + - "ngIndex.RouteDataBox\022=\n\006blocks\030\005 \003(\0132-.O" + - "smAnd.OBF.OsmAndRoutingIndex.RouteDataBl" + - "ock\032;\n\021RouteEncodingRule\022\013\n\003tag\030\003 \002(\t\022\r\n" + - "\005value\030\005 \002(\t\022\n\n\002id\030\007 \001(\r\032\231\001\n\014RouteDataBo" + - "x\022\014\n\004left\030\001 \002(\021\022\r\n\005right\030\002 \002(\021\022\013\n\003top\030\003 " + - "\002(\021\022\016\n\006bottom\030\004 \002(\021\022\023\n\013shiftToData\030\005 \001(\007" + - "\022:\n\005boxes\030\007 \003(\0132+.OsmAnd.OBF.OsmAndRouti", - "ngIndex.RouteDataBox\032\303\001\n\016RouteDataBlock\022" + - "$\n\007idTable\030\005 \001(\0132\023.OsmAnd.OBF.IdTable\022*\n" + - "\013dataObjects\030\006 \003(\0132\025.OsmAnd.OBF.RouteDat" + - "a\0221\n\014restrictions\030\007 \003(\0132\033.OsmAnd.OBF.Res" + - "trictionData\022,\n\013stringTable\030\010 \001(\0132\027.OsmA" + - "nd.OBF.StringTableB\036\n\021net.osmand.binaryB" + - "\tOsmandOdb" + "\036.OsmAnd.OBF.TransportRouteStop\022\026\n\016direc" + + "tGeometry\030\021 \001(\014\022\027\n\017reverseGeometry\030\022 \001(\014" + + "\"W\n\022TransportRouteStop\022\n\n\002id\030\001 \002(\022\022\n\n\002dx" + + "\030\002 \002(\021\022\n\n\002dy\030\003 \002(\021\022\014\n\004name\030\006 \002(\r\022\017\n\007name" + + "_en\030\007 \001(\r\"b\n\rTransportStop\022\n\n\002dx\030\001 \002(\021\022\n" + + "\n\002dy\030\002 \002(\021\022\n\n\002id\030\005 \002(\022\022\014\n\004name\030\006 \002(\r\022\017\n\007" + + "name_en\030\007 \001(\r\022\016\n\006routes\030\020 \003(\r\"\272\001\n\022Transp" + + "ortStopsTree\022\014\n\004left\030\001 \002(\021\022\r\n\005right\030\002 \002(" + + "\021\022\013\n\003top\030\003 \002(\021\022\016\n\006bottom\030\004 \002(\021\0220\n\010subtre" + + "es\030\007 \003(\0132\036.OsmAnd.OBF.TransportStopsTree", + "\022(\n\005leafs\030\010 \003(\0132\031.OsmAnd.OBF.TransportSt" + + "op\022\016\n\006baseId\030\020 \001(\004\"\256\001\n\024OsmAndTransportIn" + + "dex\022\014\n\004name\030\001 \001(\t\022+\n\006routes\030\003 \001(\0132\033.OsmA" + + "nd.OBF.TransportRoutes\022-\n\005stops\030\006 \001(\0132\036." + + "OsmAnd.OBF.TransportStopsTree\022,\n\013stringT" + + "able\030\t \002(\0132\027.OsmAnd.OBF.StringTable\"\312\002\n\016" + + "OsmAndPoiIndex\022\014\n\004name\030\001 \002(\t\022-\n\nboundari" + + "es\030\002 \002(\0132\031.OsmAnd.OBF.OsmAndTileBox\0228\n\017c" + + "ategoriesTable\030\003 \003(\0132\037.OsmAnd.OBF.OsmAnd" + + "CategoryTable\0221\n\tnameIndex\030\004 \001(\0132\036.OsmAn", + "d.OBF.OsmAndPoiNameIndex\0226\n\rsubtypesTabl" + + "e\030\005 \001(\0132\037.OsmAnd.OBF.OsmAndSubtypesTable" + + "\022\'\n\005boxes\030\006 \003(\0132\030.OsmAnd.OBF.OsmAndPoiBo" + + "x\022-\n\007poiData\030\t \003(\0132\034.OsmAnd.OBF.OsmAndPo" + + "iBoxData\"\331\001\n\022OsmAndPoiNameIndex\022-\n\005table" + + "\030\003 \002(\0132\036.OsmAnd.OBF.IndexedStringTable\022C" + + "\n\004data\030\005 \003(\01325.OsmAnd.OBF.OsmAndPoiNameI" + + "ndex.OsmAndPoiNameIndexData\032O\n\026OsmAndPoi" + + "NameIndexData\0225\n\005atoms\030\003 \003(\0132&.OsmAnd.OB" + + "F.OsmAndPoiNameIndexDataAtom\"Q\n\032OsmAndPo", + "iNameIndexDataAtom\022\014\n\004zoom\030\002 \001(\r\022\t\n\001x\030\003 " + + "\001(\r\022\t\n\001y\030\004 \001(\r\022\017\n\007shiftTo\030\016 \001(\007\">\n\023OsmAn" + + "dCategoryTable\022\020\n\010category\030\001 \002(\t\022\025\n\rsubc" + + "ategories\030\003 \003(\t\"E\n\023OsmAndSubtypesTable\022." + + "\n\010subtypes\030\004 \003(\0132\034.OsmAnd.OBF.OsmAndPoiS" + + "ubtype\"\205\001\n\020OsmAndPoiSubtype\022\014\n\004name\030\001 \002(" + + "\t\022\017\n\007tagname\030\002 \001(\t\022\016\n\006isText\030\003 \002(\010\022\021\n\tfr" + + "equency\030\005 \001(\r\022\031\n\021subtypeValuesSize\030\006 \001(\r" + + "\022\024\n\014subtypeValue\030\010 \003(\t\"\255\001\n\014OsmAndPoiBox\022" + + "\014\n\004zoom\030\001 \002(\r\022\014\n\004left\030\002 \002(\021\022\013\n\003top\030\003 \002(\021", + "\0223\n\ncategories\030\004 \001(\0132\037.OsmAnd.OBF.OsmAnd" + + "PoiCategories\022*\n\010subBoxes\030\n \003(\0132\030.OsmAnd" + + ".OBF.OsmAndPoiBox\022\023\n\013shiftToData\030\016 \001(\007\"@" + + "\n\023OsmAndPoiCategories\022\022\n\ncategories\030\003 \003(" + + "\r\022\025\n\rsubcategories\030\005 \003(\r\"i\n\020OsmAndPoiBox" + + "Data\022\014\n\004zoom\030\001 \001(\r\022\t\n\001x\030\002 \001(\r\022\t\n\001y\030\003 \001(\r" + + "\0221\n\007poiData\030\005 \003(\0132 .OsmAnd.OBF.OsmAndPoi" + + "BoxDataAtom\"\360\001\n\024OsmAndPoiBoxDataAtom\022\n\n\002" + + "dx\030\002 \002(\021\022\n\n\002dy\030\003 \002(\021\022\022\n\ncategories\030\004 \003(\r" + + "\022\025\n\rsubcategories\030\005 \003(\r\022\014\n\004name\030\006 \001(\t\022\016\n", + "\006nameEn\030\007 \001(\t\022\n\n\002id\030\010 \001(\004\022\024\n\014openingHour" + + "s\030\n \001(\t\022\014\n\004site\030\013 \001(\t\022\r\n\005phone\030\014 \001(\t\022\014\n\004" + + "note\030\r \001(\t\022\026\n\016textCategories\030\016 \003(\r\022\022\n\nte" + + "xtValues\030\017 \003(\t\"\032\n\007IdTable\022\017\n\007routeId\030\001 \003" + + "(\022\"F\n\017RestrictionData\022\014\n\004type\030\001 \002(\005\022\014\n\004f" + + "rom\030\002 \002(\005\022\n\n\002to\030\003 \002(\005\022\013\n\003via\030\004 \001(\005\"x\n\tRo" + + "uteData\022\016\n\006points\030\001 \002(\014\022\022\n\npointTypes\030\004 " + + "\001(\014\022\022\n\npointNames\030\005 \001(\014\022\r\n\005types\030\007 \002(\014\022\017" + + "\n\007routeId\030\014 \002(\005\022\023\n\013stringNames\030\016 \001(\014\"\304\005\n" + + "\022OsmAndRoutingIndex\022\014\n\004name\030\001 \002(\t\022?\n\005rul", + "es\030\002 \003(\01320.OsmAnd.OBF.OsmAndRoutingIndex" + + ".RouteEncodingRule\022>\n\trootBoxes\030\003 \003(\0132+." + + "OsmAnd.OBF.OsmAndRoutingIndex.RouteDataB" + + "ox\022A\n\014basemapBoxes\030\004 \003(\0132+.OsmAnd.OBF.Os" + + "mAndRoutingIndex.RouteDataBox\022=\n\006blocks\030" + + "\005 \003(\0132-.OsmAnd.OBF.OsmAndRoutingIndex.Ro" + + "uteDataBlock\032;\n\021RouteEncodingRule\022\013\n\003tag" + + "\030\003 \002(\t\022\r\n\005value\030\005 \002(\t\022\n\n\002id\030\007 \001(\r\032\231\001\n\014Ro" + + "uteDataBox\022\014\n\004left\030\001 \002(\021\022\r\n\005right\030\002 \002(\021\022" + + "\013\n\003top\030\003 \002(\021\022\016\n\006bottom\030\004 \002(\021\022\023\n\013shiftToD", + "ata\030\005 \001(\007\022:\n\005boxes\030\007 \003(\0132+.OsmAnd.OBF.Os" + + "mAndRoutingIndex.RouteDataBox\032\303\001\n\016RouteD" + + "ataBlock\022$\n\007idTable\030\005 \001(\0132\023.OsmAnd.OBF.I" + + "dTable\022*\n\013dataObjects\030\006 \003(\0132\025.OsmAnd.OBF" + + ".RouteData\0221\n\014restrictions\030\007 \003(\0132\033.OsmAn" + + "d.OBF.RestrictionData\022,\n\013stringTable\030\010 \001" + + "(\0132\027.OsmAnd.OBF.StringTableB\036\n\021net.osman" + + "d.binaryB\tOsmandOdb" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -57907,7 +58124,7 @@ public final class OsmandOdb { internal_static_OsmAnd_OBF_TransportRoute_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_OsmAnd_OBF_TransportRoute_descriptor, - new java.lang.String[] { "Id", "Type", "Operator", "Ref", "Name", "NameEn", "Distance", "DirectStops", "ReverseStops", }); + new java.lang.String[] { "Id", "Type", "Operator", "Ref", "Name", "NameEn", "Distance", "DirectStops", "ReverseStops", "DirectGeometry", "ReverseGeometry", }); internal_static_OsmAnd_OBF_TransportRouteStop_descriptor = getDescriptor().getMessageTypes().get(17); internal_static_OsmAnd_OBF_TransportRouteStop_fieldAccessorTable = new diff --git a/OsmAnd-java/src/net/osmand/data/TransportRoute.java b/OsmAnd-java/src/net/osmand/data/TransportRoute.java index ca45d1ac38..028045d9b6 100644 --- a/OsmAnd-java/src/net/osmand/data/TransportRoute.java +++ b/OsmAnd-java/src/net/osmand/data/TransportRoute.java @@ -1,8 +1,10 @@ package net.osmand.data; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import net.osmand.osm.edit.Way; import net.osmand.util.MapUtils; public class TransportRoute extends MapObject { @@ -12,6 +14,8 @@ public class TransportRoute extends MapObject { private String operator; private String type; private Integer dist = null; + private List forwardWays; + private List backwardWays; public TransportRoute(){ } @@ -24,6 +28,35 @@ public class TransportRoute extends MapObject { return backwardStops; } + public List getForwardWays() { + if(forwardWays == null){ + return Collections.emptyList(); + } + return forwardWays; + } + + public List getBackwardWays() { + if(backwardWays == null){ + return Collections.emptyList(); + } + return backwardWays; + } + + public void addWay(Way w, int direction){ + if(direction >= 0) { + if(forwardWays == null) { + forwardWays = new ArrayList<>(); + } + forwardWays.add(w); + } + if(direction <= 0) { + if(backwardWays == null) { + backwardWays = new ArrayList<>(); + } + backwardWays.add(w); + } + } + public String getRef() { return ref; } diff --git a/OsmAnd-java/src/net/osmand/osm/edit/EntityParser.java b/OsmAnd-java/src/net/osmand/osm/edit/EntityParser.java index e39a5b8f99..afe42eb6de 100644 --- a/OsmAnd-java/src/net/osmand/osm/edit/EntityParser.java +++ b/OsmAnd-java/src/net/osmand/osm/edit/EntityParser.java @@ -11,6 +11,7 @@ import net.osmand.data.City; import net.osmand.data.City.CityType; import net.osmand.data.LatLon; import net.osmand.data.MapObject; +import net.osmand.data.TransportRoute; import net.osmand.data.TransportStop; import net.osmand.osm.MapPoiTypes; import net.osmand.osm.MapRenderingTypes; @@ -220,8 +221,8 @@ public class EntityParser { } - public static OsmTransportRoute parserRoute(Relation r, String ref){ - OsmTransportRoute rt = new OsmTransportRoute(); + public static TransportRoute parserRoute(Relation r, String ref){ + TransportRoute rt = new TransportRoute(); parseMapObject(rt, r, r.getTags()); rt.setRef(ref); return rt; diff --git a/OsmAnd-java/src/net/osmand/osm/edit/OsmTransportRoute.java b/OsmAnd-java/src/net/osmand/osm/edit/OsmTransportRoute.java deleted file mode 100644 index 2e4e206a32..0000000000 --- a/OsmAnd-java/src/net/osmand/osm/edit/OsmTransportRoute.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.osmand.osm.edit; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import net.osmand.data.TransportRoute; - -public class OsmTransportRoute extends TransportRoute { - private List ways; - - public List getWays() { - if(ways == null){ - return Collections.emptyList(); - } - return ways; - } - - public void addWay(Way w){ - if(ways == null){ - ways = new ArrayList(); - } - ways.add(w); - } -} \ No newline at end of file