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