Add ref to exits

This commit is contained in:
xmd5a 2018-12-19 15:56:38 +03:00
parent a751564dcc
commit 62f3e5390f
4 changed files with 228 additions and 119 deletions

View file

@ -454,6 +454,9 @@ public class BinaryMapTransportReaderAdapter {
if (exit.getEnName(false).length() > 0) { if (exit.getEnName(false).length() > 0) {
exit.setEnName(stringTable.get(exit.getEnName(false).charAt(0))); exit.setEnName(stringTable.get(exit.getEnName(false).charAt(0)));
} }
if (exit.getRef().length() > 0) {
exit.setRef(stringTable.get(exit.getRef().charAt(0)));
}
} }
if (s.getName().length() > 0) { if (s.getName().length() > 0) {
s.setName(stringTable.get(s.getName().charAt(0))); s.setName(stringTable.get(s.getName().charAt(0)));
@ -605,6 +608,13 @@ public class BinaryMapTransportReaderAdapter {
skipUnknownField(t); skipUnknownField(t);
} }
break; break;
case OsmandOdb.TransportStopExit.REF_FIELD_NUMBER:
if (req.stringTable != null) {
dataObject.setRef(regStr(req.stringTable));
} else {
skipUnknownField(t);
}
break;
case OsmandOdb.TransportStopExit.DX_FIELD_NUMBER: case OsmandOdb.TransportStopExit.DX_FIELD_NUMBER:
x = codedIS.readSInt32() + cleft; x = codedIS.readSInt32() + cleft;
break; break;

View file

@ -37069,6 +37069,16 @@ public final class OsmandOdb {
*/ */
int getDy(); int getDy();
// required uint32 ref = 3;
/**
* <code>required uint32 ref = 3;</code>
*/
boolean hasRef();
/**
* <code>required uint32 ref = 3;</code>
*/
int getRef();
// required uint32 name = 5; // required uint32 name = 5;
/** /**
* <code>required uint32 name = 5;</code> * <code>required uint32 name = 5;</code>
@ -37184,20 +37194,25 @@ public final class OsmandOdb {
dy_ = input.readSInt32(); dy_ = input.readSInt32();
break; break;
} }
case 40: { case 24: {
bitField0_ |= 0x00000004; bitField0_ |= 0x00000004;
ref_ = input.readUInt32();
break;
}
case 40: {
bitField0_ |= 0x00000008;
name_ = input.readUInt32(); name_ = input.readUInt32();
break; break;
} }
case 48: { case 48: {
bitField0_ |= 0x00000008; bitField0_ |= 0x00000010;
nameEn_ = input.readUInt32(); nameEn_ = input.readUInt32();
break; break;
} }
case 56: { case 56: {
if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
attributeTagIds_ = new java.util.ArrayList<java.lang.Integer>(); attributeTagIds_ = new java.util.ArrayList<java.lang.Integer>();
mutable_bitField0_ |= 0x00000010; mutable_bitField0_ |= 0x00000020;
} }
attributeTagIds_.add(input.readUInt32()); attributeTagIds_.add(input.readUInt32());
break; break;
@ -37205,9 +37220,9 @@ public final class OsmandOdb {
case 58: { case 58: {
int length = input.readRawVarint32(); int length = input.readRawVarint32();
int limit = input.pushLimit(length); int limit = input.pushLimit(length);
if (!((mutable_bitField0_ & 0x00000010) == 0x00000010) && input.getBytesUntilLimit() > 0) { if (!((mutable_bitField0_ & 0x00000020) == 0x00000020) && input.getBytesUntilLimit() > 0) {
attributeTagIds_ = new java.util.ArrayList<java.lang.Integer>(); attributeTagIds_ = new java.util.ArrayList<java.lang.Integer>();
mutable_bitField0_ |= 0x00000010; mutable_bitField0_ |= 0x00000020;
} }
while (input.getBytesUntilLimit() > 0) { while (input.getBytesUntilLimit() > 0) {
attributeTagIds_.add(input.readUInt32()); attributeTagIds_.add(input.readUInt32());
@ -37216,9 +37231,9 @@ public final class OsmandOdb {
break; break;
} }
case 66: { case 66: {
if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) { if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
attributeValues_ = new com.google.protobuf.LazyStringArrayList(); attributeValues_ = new com.google.protobuf.LazyStringArrayList();
mutable_bitField0_ |= 0x00000020; mutable_bitField0_ |= 0x00000040;
} }
attributeValues_.add(input.readBytes()); attributeValues_.add(input.readBytes());
break; break;
@ -37231,10 +37246,10 @@ public final class OsmandOdb {
throw new com.google.protobuf.InvalidProtocolBufferException( throw new com.google.protobuf.InvalidProtocolBufferException(
e.getMessage()).setUnfinishedMessage(this); e.getMessage()).setUnfinishedMessage(this);
} finally { } finally {
if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) { if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
attributeTagIds_ = java.util.Collections.unmodifiableList(attributeTagIds_); attributeTagIds_ = java.util.Collections.unmodifiableList(attributeTagIds_);
} }
if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) { if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
attributeValues_ = new com.google.protobuf.UnmodifiableLazyStringList(attributeValues_); attributeValues_ = new com.google.protobuf.UnmodifiableLazyStringList(attributeValues_);
} }
this.unknownFields = unknownFields.build(); this.unknownFields = unknownFields.build();
@ -37317,6 +37332,22 @@ public final class OsmandOdb {
return dy_; return dy_;
} }
// required uint32 ref = 3;
public static final int REF_FIELD_NUMBER = 3;
private int ref_;
/**
* <code>required uint32 ref = 3;</code>
*/
public boolean hasRef() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>required uint32 ref = 3;</code>
*/
public int getRef() {
return ref_;
}
// required uint32 name = 5; // required uint32 name = 5;
public static final int NAME_FIELD_NUMBER = 5; public static final int NAME_FIELD_NUMBER = 5;
private int name_; private int name_;
@ -37324,7 +37355,7 @@ public final class OsmandOdb {
* <code>required uint32 name = 5;</code> * <code>required uint32 name = 5;</code>
*/ */
public boolean hasName() { public boolean hasName() {
return ((bitField0_ & 0x00000004) == 0x00000004); return ((bitField0_ & 0x00000008) == 0x00000008);
} }
/** /**
* <code>required uint32 name = 5;</code> * <code>required uint32 name = 5;</code>
@ -37340,7 +37371,7 @@ public final class OsmandOdb {
* <code>optional uint32 name_en = 6;</code> * <code>optional uint32 name_en = 6;</code>
*/ */
public boolean hasNameEn() { public boolean hasNameEn() {
return ((bitField0_ & 0x00000008) == 0x00000008); return ((bitField0_ & 0x00000010) == 0x00000010);
} }
/** /**
* <code>optional uint32 name_en = 6;</code> * <code>optional uint32 name_en = 6;</code>
@ -37405,6 +37436,7 @@ public final class OsmandOdb {
private void initFields() { private void initFields() {
dx_ = 0; dx_ = 0;
dy_ = 0; dy_ = 0;
ref_ = 0;
name_ = 0; name_ = 0;
nameEn_ = 0; nameEn_ = 0;
attributeTagIds_ = java.util.Collections.emptyList(); attributeTagIds_ = java.util.Collections.emptyList();
@ -37423,6 +37455,10 @@ public final class OsmandOdb {
memoizedIsInitialized = 0; memoizedIsInitialized = 0;
return false; return false;
} }
if (!hasRef()) {
memoizedIsInitialized = 0;
return false;
}
if (!hasName()) { if (!hasName()) {
memoizedIsInitialized = 0; memoizedIsInitialized = 0;
return false; return false;
@ -37441,9 +37477,12 @@ public final class OsmandOdb {
output.writeSInt32(2, dy_); output.writeSInt32(2, dy_);
} }
if (((bitField0_ & 0x00000004) == 0x00000004)) { if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeUInt32(5, name_); output.writeUInt32(3, ref_);
} }
if (((bitField0_ & 0x00000008) == 0x00000008)) { if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeUInt32(5, name_);
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
output.writeUInt32(6, nameEn_); output.writeUInt32(6, nameEn_);
} }
for (int i = 0; i < attributeTagIds_.size(); i++) { for (int i = 0; i < attributeTagIds_.size(); i++) {
@ -37471,9 +37510,13 @@ public final class OsmandOdb {
} }
if (((bitField0_ & 0x00000004) == 0x00000004)) { if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(5, name_); .computeUInt32Size(3, ref_);
} }
if (((bitField0_ & 0x00000008) == 0x00000008)) { if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(5, name_);
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
size += com.google.protobuf.CodedOutputStream size += com.google.protobuf.CodedOutputStream
.computeUInt32Size(6, nameEn_); .computeUInt32Size(6, nameEn_);
} }
@ -37615,14 +37658,16 @@ public final class OsmandOdb {
bitField0_ = (bitField0_ & ~0x00000001); bitField0_ = (bitField0_ & ~0x00000001);
dy_ = 0; dy_ = 0;
bitField0_ = (bitField0_ & ~0x00000002); bitField0_ = (bitField0_ & ~0x00000002);
name_ = 0; ref_ = 0;
bitField0_ = (bitField0_ & ~0x00000004); bitField0_ = (bitField0_ & ~0x00000004);
nameEn_ = 0; name_ = 0;
bitField0_ = (bitField0_ & ~0x00000008); bitField0_ = (bitField0_ & ~0x00000008);
attributeTagIds_ = java.util.Collections.emptyList(); nameEn_ = 0;
bitField0_ = (bitField0_ & ~0x00000010); bitField0_ = (bitField0_ & ~0x00000010);
attributeValues_ = com.google.protobuf.LazyStringArrayList.EMPTY; attributeTagIds_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000020); bitField0_ = (bitField0_ & ~0x00000020);
attributeValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000040);
return this; return this;
} }
@ -37662,20 +37707,24 @@ public final class OsmandOdb {
if (((from_bitField0_ & 0x00000004) == 0x00000004)) { if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004; to_bitField0_ |= 0x00000004;
} }
result.name_ = name_; result.ref_ = ref_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) { if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008; to_bitField0_ |= 0x00000008;
} }
result.name_ = name_;
if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
to_bitField0_ |= 0x00000010;
}
result.nameEn_ = nameEn_; result.nameEn_ = nameEn_;
if (((bitField0_ & 0x00000010) == 0x00000010)) { if (((bitField0_ & 0x00000020) == 0x00000020)) {
attributeTagIds_ = java.util.Collections.unmodifiableList(attributeTagIds_); attributeTagIds_ = java.util.Collections.unmodifiableList(attributeTagIds_);
bitField0_ = (bitField0_ & ~0x00000010); bitField0_ = (bitField0_ & ~0x00000020);
} }
result.attributeTagIds_ = attributeTagIds_; result.attributeTagIds_ = attributeTagIds_;
if (((bitField0_ & 0x00000020) == 0x00000020)) { if (((bitField0_ & 0x00000040) == 0x00000040)) {
attributeValues_ = new com.google.protobuf.UnmodifiableLazyStringList( attributeValues_ = new com.google.protobuf.UnmodifiableLazyStringList(
attributeValues_); attributeValues_);
bitField0_ = (bitField0_ & ~0x00000020); bitField0_ = (bitField0_ & ~0x00000040);
} }
result.attributeValues_ = attributeValues_; result.attributeValues_ = attributeValues_;
result.bitField0_ = to_bitField0_; result.bitField0_ = to_bitField0_;
@ -37700,6 +37749,9 @@ public final class OsmandOdb {
if (other.hasDy()) { if (other.hasDy()) {
setDy(other.getDy()); setDy(other.getDy());
} }
if (other.hasRef()) {
setRef(other.getRef());
}
if (other.hasName()) { if (other.hasName()) {
setName(other.getName()); setName(other.getName());
} }
@ -37709,7 +37761,7 @@ public final class OsmandOdb {
if (!other.attributeTagIds_.isEmpty()) { if (!other.attributeTagIds_.isEmpty()) {
if (attributeTagIds_.isEmpty()) { if (attributeTagIds_.isEmpty()) {
attributeTagIds_ = other.attributeTagIds_; attributeTagIds_ = other.attributeTagIds_;
bitField0_ = (bitField0_ & ~0x00000010); bitField0_ = (bitField0_ & ~0x00000020);
} else { } else {
ensureAttributeTagIdsIsMutable(); ensureAttributeTagIdsIsMutable();
attributeTagIds_.addAll(other.attributeTagIds_); attributeTagIds_.addAll(other.attributeTagIds_);
@ -37719,7 +37771,7 @@ public final class OsmandOdb {
if (!other.attributeValues_.isEmpty()) { if (!other.attributeValues_.isEmpty()) {
if (attributeValues_.isEmpty()) { if (attributeValues_.isEmpty()) {
attributeValues_ = other.attributeValues_; attributeValues_ = other.attributeValues_;
bitField0_ = (bitField0_ & ~0x00000020); bitField0_ = (bitField0_ & ~0x00000040);
} else { } else {
ensureAttributeValuesIsMutable(); ensureAttributeValuesIsMutable();
attributeValues_.addAll(other.attributeValues_); attributeValues_.addAll(other.attributeValues_);
@ -37739,6 +37791,10 @@ public final class OsmandOdb {
return false; return false;
} }
if (!hasRef()) {
return false;
}
if (!hasName()) { if (!hasName()) {
return false; return false;
@ -37863,13 +37919,46 @@ public final class OsmandOdb {
return this; return this;
} }
// required uint32 ref = 3;
private int ref_ ;
/**
* <code>required uint32 ref = 3;</code>
*/
public boolean hasRef() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>required uint32 ref = 3;</code>
*/
public int getRef() {
return ref_;
}
/**
* <code>required uint32 ref = 3;</code>
*/
public Builder setRef(int value) {
bitField0_ |= 0x00000004;
ref_ = value;
onChanged();
return this;
}
/**
* <code>required uint32 ref = 3;</code>
*/
public Builder clearRef() {
bitField0_ = (bitField0_ & ~0x00000004);
ref_ = 0;
onChanged();
return this;
}
// required uint32 name = 5; // required uint32 name = 5;
private int name_ ; private int name_ ;
/** /**
* <code>required uint32 name = 5;</code> * <code>required uint32 name = 5;</code>
*/ */
public boolean hasName() { public boolean hasName() {
return ((bitField0_ & 0x00000004) == 0x00000004); return ((bitField0_ & 0x00000008) == 0x00000008);
} }
/** /**
* <code>required uint32 name = 5;</code> * <code>required uint32 name = 5;</code>
@ -37881,7 +37970,7 @@ public final class OsmandOdb {
* <code>required uint32 name = 5;</code> * <code>required uint32 name = 5;</code>
*/ */
public Builder setName(int value) { public Builder setName(int value) {
bitField0_ |= 0x00000004; bitField0_ |= 0x00000008;
name_ = value; name_ = value;
onChanged(); onChanged();
return this; return this;
@ -37890,7 +37979,7 @@ public final class OsmandOdb {
* <code>required uint32 name = 5;</code> * <code>required uint32 name = 5;</code>
*/ */
public Builder clearName() { public Builder clearName() {
bitField0_ = (bitField0_ & ~0x00000004); bitField0_ = (bitField0_ & ~0x00000008);
name_ = 0; name_ = 0;
onChanged(); onChanged();
return this; return this;
@ -37902,7 +37991,7 @@ public final class OsmandOdb {
* <code>optional uint32 name_en = 6;</code> * <code>optional uint32 name_en = 6;</code>
*/ */
public boolean hasNameEn() { public boolean hasNameEn() {
return ((bitField0_ & 0x00000008) == 0x00000008); return ((bitField0_ & 0x00000010) == 0x00000010);
} }
/** /**
* <code>optional uint32 name_en = 6;</code> * <code>optional uint32 name_en = 6;</code>
@ -37914,7 +38003,7 @@ public final class OsmandOdb {
* <code>optional uint32 name_en = 6;</code> * <code>optional uint32 name_en = 6;</code>
*/ */
public Builder setNameEn(int value) { public Builder setNameEn(int value) {
bitField0_ |= 0x00000008; bitField0_ |= 0x00000010;
nameEn_ = value; nameEn_ = value;
onChanged(); onChanged();
return this; return this;
@ -37923,7 +38012,7 @@ public final class OsmandOdb {
* <code>optional uint32 name_en = 6;</code> * <code>optional uint32 name_en = 6;</code>
*/ */
public Builder clearNameEn() { public Builder clearNameEn() {
bitField0_ = (bitField0_ & ~0x00000008); bitField0_ = (bitField0_ & ~0x00000010);
nameEn_ = 0; nameEn_ = 0;
onChanged(); onChanged();
return this; return this;
@ -37932,9 +38021,9 @@ public final class OsmandOdb {
// repeated uint32 attributeTagIds = 7; // repeated uint32 attributeTagIds = 7;
private java.util.List<java.lang.Integer> attributeTagIds_ = java.util.Collections.emptyList(); private java.util.List<java.lang.Integer> attributeTagIds_ = java.util.Collections.emptyList();
private void ensureAttributeTagIdsIsMutable() { private void ensureAttributeTagIdsIsMutable() {
if (!((bitField0_ & 0x00000010) == 0x00000010)) { if (!((bitField0_ & 0x00000020) == 0x00000020)) {
attributeTagIds_ = new java.util.ArrayList<java.lang.Integer>(attributeTagIds_); attributeTagIds_ = new java.util.ArrayList<java.lang.Integer>(attributeTagIds_);
bitField0_ |= 0x00000010; bitField0_ |= 0x00000020;
} }
} }
/** /**
@ -37990,7 +38079,7 @@ public final class OsmandOdb {
*/ */
public Builder clearAttributeTagIds() { public Builder clearAttributeTagIds() {
attributeTagIds_ = java.util.Collections.emptyList(); attributeTagIds_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000010); bitField0_ = (bitField0_ & ~0x00000020);
onChanged(); onChanged();
return this; return this;
} }
@ -37998,9 +38087,9 @@ public final class OsmandOdb {
// repeated string attributeValues = 8; // repeated string attributeValues = 8;
private com.google.protobuf.LazyStringList attributeValues_ = com.google.protobuf.LazyStringArrayList.EMPTY; private com.google.protobuf.LazyStringList attributeValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
private void ensureAttributeValuesIsMutable() { private void ensureAttributeValuesIsMutable() {
if (!((bitField0_ & 0x00000020) == 0x00000020)) { if (!((bitField0_ & 0x00000040) == 0x00000040)) {
attributeValues_ = new com.google.protobuf.LazyStringArrayList(attributeValues_); attributeValues_ = new com.google.protobuf.LazyStringArrayList(attributeValues_);
bitField0_ |= 0x00000020; bitField0_ |= 0x00000040;
} }
} }
/** /**
@ -38070,7 +38159,7 @@ public final class OsmandOdb {
*/ */
public Builder clearAttributeValues() { public Builder clearAttributeValues() {
attributeValues_ = com.google.protobuf.LazyStringArrayList.EMPTY; attributeValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000020); bitField0_ = (bitField0_ & ~0x00000040);
onChanged(); onChanged();
return this; return this;
} }
@ -62692,81 +62781,81 @@ public final class OsmandOdb {
"op\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" + "op\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,\n\005exits\030\t" + "\n\004name\030\006 \002(\r\022\017\n\007name_en\030\007 \001(\r\022,\n\005exits\030\t" +
" \003(\0132\035.OsmAnd.OBF.TransportStopExit\022\016\n\006r" + " \003(\0132\035.OsmAnd.OBF.TransportStopExit\022\016\n\006r" +
"outes\030\020 \003(\r\"|\n\021TransportStopExit\022\n\n\002dx\030\001" + "outes\030\020 \003(\r\"\211\001\n\021TransportStopExit\022\n\n\002dx\030" +
" \002(\021\022\n\n\002dy\030\002 \002(\021\022\014\n\004name\030\005 \002(\r\022\017\n\007name_e", "\001 \002(\021\022\n\n\002dy\030\002 \002(\021\022\013\n\003ref\030\003 \002(\r\022\014\n\004name\030\005",
"n\030\006 \001(\r\022\027\n\017attributeTagIds\030\007 \003(\r\022\027\n\017attr" + " \002(\r\022\017\n\007name_en\030\006 \001(\r\022\027\n\017attributeTagIds" +
"ibuteValues\030\010 \003(\t\"\272\001\n\022TransportStopsTree" + "\030\007 \003(\r\022\027\n\017attributeValues\030\010 \003(\t\"\272\001\n\022Tran" +
"\022\014\n\004left\030\001 \002(\021\022\r\n\005right\030\002 \002(\021\022\013\n\003top\030\003 \002" + "sportStopsTree\022\014\n\004left\030\001 \002(\021\022\r\n\005right\030\002 " +
"(\021\022\016\n\006bottom\030\004 \002(\021\0220\n\010subtrees\030\007 \003(\0132\036.O" + "\002(\021\022\013\n\003top\030\003 \002(\021\022\016\n\006bottom\030\004 \002(\021\0220\n\010subt" +
"smAnd.OBF.TransportStopsTree\022(\n\005leafs\030\010 " + "rees\030\007 \003(\0132\036.OsmAnd.OBF.TransportStopsTr" +
"\003(\0132\031.OsmAnd.OBF.TransportStop\022\016\n\006baseId" + "ee\022(\n\005leafs\030\010 \003(\0132\031.OsmAnd.OBF.Transport" +
"\030\020 \001(\004\"\256\001\n\024OsmAndTransportIndex\022\014\n\004name\030" + "Stop\022\016\n\006baseId\030\020 \001(\004\"\256\001\n\024OsmAndTransport" +
"\001 \001(\t\022+\n\006routes\030\003 \001(\0132\033.OsmAnd.OBF.Trans" + "Index\022\014\n\004name\030\001 \001(\t\022+\n\006routes\030\003 \001(\0132\033.Os" +
"portRoutes\022-\n\005stops\030\006 \001(\0132\036.OsmAnd.OBF.T" + "mAnd.OBF.TransportRoutes\022-\n\005stops\030\006 \001(\0132" +
"ransportStopsTree\022,\n\013stringTable\030\t \002(\0132\027", "\036.OsmAnd.OBF.TransportStopsTree\022,\n\013strin",
".OsmAnd.OBF.StringTable\"\312\002\n\016OsmAndPoiInd" + "gTable\030\t \002(\0132\027.OsmAnd.OBF.StringTable\"\312\002" +
"ex\022\014\n\004name\030\001 \002(\t\022-\n\nboundaries\030\002 \002(\0132\031.O" + "\n\016OsmAndPoiIndex\022\014\n\004name\030\001 \002(\t\022-\n\nbounda" +
"smAnd.OBF.OsmAndTileBox\0228\n\017categoriesTab" + "ries\030\002 \002(\0132\031.OsmAnd.OBF.OsmAndTileBox\0228\n" +
"le\030\003 \003(\0132\037.OsmAnd.OBF.OsmAndCategoryTabl" + "\017categoriesTable\030\003 \003(\0132\037.OsmAnd.OBF.OsmA" +
"e\0221\n\tnameIndex\030\004 \001(\0132\036.OsmAnd.OBF.OsmAnd" + "ndCategoryTable\0221\n\tnameIndex\030\004 \001(\0132\036.Osm" +
"PoiNameIndex\0226\n\rsubtypesTable\030\005 \001(\0132\037.Os" + "And.OBF.OsmAndPoiNameIndex\0226\n\rsubtypesTa" +
"mAnd.OBF.OsmAndSubtypesTable\022\'\n\005boxes\030\006 " + "ble\030\005 \001(\0132\037.OsmAnd.OBF.OsmAndSubtypesTab" +
"\003(\0132\030.OsmAnd.OBF.OsmAndPoiBox\022-\n\007poiData" + "le\022\'\n\005boxes\030\006 \003(\0132\030.OsmAnd.OBF.OsmAndPoi" +
"\030\t \003(\0132\034.OsmAnd.OBF.OsmAndPoiBoxData\"\331\001\n" + "Box\022-\n\007poiData\030\t \003(\0132\034.OsmAnd.OBF.OsmAnd" +
"\022OsmAndPoiNameIndex\022-\n\005table\030\003 \002(\0132\036.Osm", "PoiBoxData\"\331\001\n\022OsmAndPoiNameIndex\022-\n\005tab",
"And.OBF.IndexedStringTable\022C\n\004data\030\005 \003(\013" + "le\030\003 \002(\0132\036.OsmAnd.OBF.IndexedStringTable" +
"25.OsmAnd.OBF.OsmAndPoiNameIndex.OsmAndP" + "\022C\n\004data\030\005 \003(\01325.OsmAnd.OBF.OsmAndPoiNam" +
"oiNameIndexData\032O\n\026OsmAndPoiNameIndexDat" + "eIndex.OsmAndPoiNameIndexData\032O\n\026OsmAndP" +
"a\0225\n\005atoms\030\003 \003(\0132&.OsmAnd.OBF.OsmAndPoiN" + "oiNameIndexData\0225\n\005atoms\030\003 \003(\0132&.OsmAnd." +
"ameIndexDataAtom\"Q\n\032OsmAndPoiNameIndexDa" + "OBF.OsmAndPoiNameIndexDataAtom\"Q\n\032OsmAnd" +
"taAtom\022\014\n\004zoom\030\002 \001(\r\022\t\n\001x\030\003 \001(\r\022\t\n\001y\030\004 \001" + "PoiNameIndexDataAtom\022\014\n\004zoom\030\002 \001(\r\022\t\n\001x\030" +
"(\r\022\017\n\007shiftTo\030\016 \001(\007\">\n\023OsmAndCategoryTab" + "\003 \001(\r\022\t\n\001y\030\004 \001(\r\022\017\n\007shiftTo\030\016 \001(\007\">\n\023Osm" +
"le\022\020\n\010category\030\001 \002(\t\022\025\n\rsubcategories\030\003 " + "AndCategoryTable\022\020\n\010category\030\001 \002(\t\022\025\n\rsu" +
"\003(\t\"E\n\023OsmAndSubtypesTable\022.\n\010subtypes\030\004" + "bcategories\030\003 \003(\t\"E\n\023OsmAndSubtypesTable" +
" \003(\0132\034.OsmAnd.OBF.OsmAndPoiSubtype\"\205\001\n\020O", "\022.\n\010subtypes\030\004 \003(\0132\034.OsmAnd.OBF.OsmAndPo",
"smAndPoiSubtype\022\014\n\004name\030\001 \002(\t\022\017\n\007tagname" + "iSubtype\"\205\001\n\020OsmAndPoiSubtype\022\014\n\004name\030\001 " +
"\030\002 \001(\t\022\016\n\006isText\030\003 \002(\010\022\021\n\tfrequency\030\005 \001(" + "\002(\t\022\017\n\007tagname\030\002 \001(\t\022\016\n\006isText\030\003 \002(\010\022\021\n\t" +
"\r\022\031\n\021subtypeValuesSize\030\006 \001(\r\022\024\n\014subtypeV" + "frequency\030\005 \001(\r\022\031\n\021subtypeValuesSize\030\006 \001" +
"alue\030\010 \003(\t\"\255\001\n\014OsmAndPoiBox\022\014\n\004zoom\030\001 \002(" + "(\r\022\024\n\014subtypeValue\030\010 \003(\t\"\255\001\n\014OsmAndPoiBo" +
"\r\022\014\n\004left\030\002 \002(\021\022\013\n\003top\030\003 \002(\021\0223\n\ncategori" + "x\022\014\n\004zoom\030\001 \002(\r\022\014\n\004left\030\002 \002(\021\022\013\n\003top\030\003 \002" +
"es\030\004 \001(\0132\037.OsmAnd.OBF.OsmAndPoiCategorie" + "(\021\0223\n\ncategories\030\004 \001(\0132\037.OsmAnd.OBF.OsmA" +
"s\022*\n\010subBoxes\030\n \003(\0132\030.OsmAnd.OBF.OsmAndP" + "ndPoiCategories\022*\n\010subBoxes\030\n \003(\0132\030.OsmA" +
"oiBox\022\023\n\013shiftToData\030\016 \001(\007\"@\n\023OsmAndPoiC" + "nd.OBF.OsmAndPoiBox\022\023\n\013shiftToData\030\016 \001(\007" +
"ategories\022\022\n\ncategories\030\003 \003(\r\022\025\n\rsubcate" + "\"@\n\023OsmAndPoiCategories\022\022\n\ncategories\030\003 " +
"gories\030\005 \003(\r\"i\n\020OsmAndPoiBoxData\022\014\n\004zoom", "\003(\r\022\025\n\rsubcategories\030\005 \003(\r\"i\n\020OsmAndPoiB",
"\030\001 \001(\r\022\t\n\001x\030\002 \001(\r\022\t\n\001y\030\003 \001(\r\0221\n\007poiData\030" + "oxData\022\014\n\004zoom\030\001 \001(\r\022\t\n\001x\030\002 \001(\r\022\t\n\001y\030\003 \001" +
"\005 \003(\0132 .OsmAnd.OBF.OsmAndPoiBoxDataAtom\"" + "(\r\0221\n\007poiData\030\005 \003(\0132 .OsmAnd.OBF.OsmAndP" +
"\360\001\n\024OsmAndPoiBoxDataAtom\022\n\n\002dx\030\002 \002(\021\022\n\n\002" + "oiBoxDataAtom\"\360\001\n\024OsmAndPoiBoxDataAtom\022\n" +
"dy\030\003 \002(\021\022\022\n\ncategories\030\004 \003(\r\022\025\n\rsubcateg" + "\n\002dx\030\002 \002(\021\022\n\n\002dy\030\003 \002(\021\022\022\n\ncategories\030\004 \003" +
"ories\030\005 \003(\r\022\014\n\004name\030\006 \001(\t\022\016\n\006nameEn\030\007 \001(" + "(\r\022\025\n\rsubcategories\030\005 \003(\r\022\014\n\004name\030\006 \001(\t\022" +
"\t\022\n\n\002id\030\010 \001(\004\022\024\n\014openingHours\030\n \001(\t\022\014\n\004s" + "\016\n\006nameEn\030\007 \001(\t\022\n\n\002id\030\010 \001(\004\022\024\n\014openingHo" +
"ite\030\013 \001(\t\022\r\n\005phone\030\014 \001(\t\022\014\n\004note\030\r \001(\t\022\026" + "urs\030\n \001(\t\022\014\n\004site\030\013 \001(\t\022\r\n\005phone\030\014 \001(\t\022\014" +
"\n\016textCategories\030\016 \003(\r\022\022\n\ntextValues\030\017 \003" + "\n\004note\030\r \001(\t\022\026\n\016textCategories\030\016 \003(\r\022\022\n\n" +
"(\t\"\032\n\007IdTable\022\017\n\007routeId\030\001 \003(\022\"F\n\017Restri" + "textValues\030\017 \003(\t\"\032\n\007IdTable\022\017\n\007routeId\030\001" +
"ctionData\022\014\n\004type\030\001 \002(\005\022\014\n\004from\030\002 \002(\005\022\n\n", " \003(\022\"F\n\017RestrictionData\022\014\n\004type\030\001 \002(\005\022\014\n",
"\002to\030\003 \002(\005\022\013\n\003via\030\004 \001(\005\"x\n\tRouteData\022\016\n\006p" + "\004from\030\002 \002(\005\022\n\n\002to\030\003 \002(\005\022\013\n\003via\030\004 \001(\005\"x\n\t" +
"oints\030\001 \002(\014\022\022\n\npointTypes\030\004 \001(\014\022\022\n\npoint" + "RouteData\022\016\n\006points\030\001 \002(\014\022\022\n\npointTypes\030" +
"Names\030\005 \001(\014\022\r\n\005types\030\007 \002(\014\022\017\n\007routeId\030\014 " + "\004 \001(\014\022\022\n\npointNames\030\005 \001(\014\022\r\n\005types\030\007 \002(\014" +
"\002(\005\022\023\n\013stringNames\030\016 \001(\014\"\304\005\n\022OsmAndRouti" + "\022\017\n\007routeId\030\014 \002(\005\022\023\n\013stringNames\030\016 \001(\014\"\304" +
"ngIndex\022\014\n\004name\030\001 \002(\t\022?\n\005rules\030\002 \003(\01320.O" + "\005\n\022OsmAndRoutingIndex\022\014\n\004name\030\001 \002(\t\022?\n\005r" +
"smAnd.OBF.OsmAndRoutingIndex.RouteEncodi" + "ules\030\002 \003(\01320.OsmAnd.OBF.OsmAndRoutingInd" +
"ngRule\022>\n\trootBoxes\030\003 \003(\0132+.OsmAnd.OBF.O" + "ex.RouteEncodingRule\022>\n\trootBoxes\030\003 \003(\0132" +
"smAndRoutingIndex.RouteDataBox\022A\n\014basema" + "+.OsmAnd.OBF.OsmAndRoutingIndex.RouteDat" +
"pBoxes\030\004 \003(\0132+.OsmAnd.OBF.OsmAndRoutingI" + "aBox\022A\n\014basemapBoxes\030\004 \003(\0132+.OsmAnd.OBF." +
"ndex.RouteDataBox\022=\n\006blocks\030\005 \003(\0132-.OsmA", "OsmAndRoutingIndex.RouteDataBox\022=\n\006block",
"nd.OBF.OsmAndRoutingIndex.RouteDataBlock" + "s\030\005 \003(\0132-.OsmAnd.OBF.OsmAndRoutingIndex." +
"\032;\n\021RouteEncodingRule\022\013\n\003tag\030\003 \002(\t\022\r\n\005va" + "RouteDataBlock\032;\n\021RouteEncodingRule\022\013\n\003t" +
"lue\030\005 \002(\t\022\n\n\002id\030\007 \001(\r\032\231\001\n\014RouteDataBox\022\014" + "ag\030\003 \002(\t\022\r\n\005value\030\005 \002(\t\022\n\n\002id\030\007 \001(\r\032\231\001\n\014" +
"\n\004left\030\001 \002(\021\022\r\n\005right\030\002 \002(\021\022\013\n\003top\030\003 \002(\021" + "RouteDataBox\022\014\n\004left\030\001 \002(\021\022\r\n\005right\030\002 \002(" +
"\022\016\n\006bottom\030\004 \002(\021\022\023\n\013shiftToData\030\005 \001(\007\022:\n" + "\021\022\013\n\003top\030\003 \002(\021\022\016\n\006bottom\030\004 \002(\021\022\023\n\013shiftT" +
"\005boxes\030\007 \003(\0132+.OsmAnd.OBF.OsmAndRoutingI" + "oData\030\005 \001(\007\022:\n\005boxes\030\007 \003(\0132+.OsmAnd.OBF." +
"ndex.RouteDataBox\032\303\001\n\016RouteDataBlock\022$\n\007" + "OsmAndRoutingIndex.RouteDataBox\032\303\001\n\016Rout" +
"idTable\030\005 \001(\0132\023.OsmAnd.OBF.IdTable\022*\n\013da" + "eDataBlock\022$\n\007idTable\030\005 \001(\0132\023.OsmAnd.OBF" +
"taObjects\030\006 \003(\0132\025.OsmAnd.OBF.RouteData\0221" + ".IdTable\022*\n\013dataObjects\030\006 \003(\0132\025.OsmAnd.O" +
"\n\014restrictions\030\007 \003(\0132\033.OsmAnd.OBF.Restri", "BF.RouteData\0221\n\014restrictions\030\007 \003(\0132\033.Osm",
"ctionData\022,\n\013stringTable\030\010 \001(\0132\027.OsmAnd." + "And.OBF.RestrictionData\022,\n\013stringTable\030\010" +
"OBF.StringTableB\036\n\021net.osmand.binaryB\tOs" + " \001(\0132\027.OsmAnd.OBF.StringTableB\036\n\021net.osm" +
"mandOdb" "and.binaryB\tOsmandOdb"
}; };
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@ -62934,7 +63023,7 @@ public final class OsmandOdb {
internal_static_OsmAnd_OBF_TransportStopExit_fieldAccessorTable = new internal_static_OsmAnd_OBF_TransportStopExit_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable( com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_OsmAnd_OBF_TransportStopExit_descriptor, internal_static_OsmAnd_OBF_TransportStopExit_descriptor,
new java.lang.String[] { "Dx", "Dy", "Name", "NameEn", "AttributeTagIds", "AttributeValues", }); new java.lang.String[] { "Dx", "Dy", "Ref", "Name", "NameEn", "AttributeTagIds", "AttributeValues", });
internal_static_OsmAnd_OBF_TransportStopsTree_descriptor = internal_static_OsmAnd_OBF_TransportStopsTree_descriptor =
getDescriptor().getMessageTypes().get(22); getDescriptor().getMessageTypes().get(22);
internal_static_OsmAnd_OBF_TransportStopsTree_fieldAccessorTable = new internal_static_OsmAnd_OBF_TransportStopsTree_fieldAccessorTable = new

View file

@ -61,16 +61,16 @@ public class TransportStop extends MapObject {
public String getExitsString () { public String getExitsString () {
String exitsString = ""; String exitsString = "";
String refString = "";
if (this.exits != null) { if (this.exits != null) {
int i = 1; int i = 1;
exitsString = exitsString + " Exits: ["; exitsString = exitsString + " Exits: [";
for (TransportStopExit e : this.exits ) for (TransportStopExit e : this.exits ) {
{ if (e.getRef() != null) {
if (e != null) { refString = " [ref:" + e.getRef() + "] ";
exitsString = exitsString + " " + i + ") " + e.getName() + " " + e.getLocation();
i++;
} }
exitsString = exitsString + " ]"; exitsString = exitsString + " " + i + ")" + refString + e.getName() + " " + e.getLocation() + " ]";
i++;
} }
} }
return exitsString; return exitsString;

View file

@ -5,6 +5,7 @@ import net.osmand.util.MapUtils;
public class TransportStopExit extends MapObject { public class TransportStopExit extends MapObject {
public int x31; public int x31;
public int y31; public int y31;
public String ref = null;
@Override @Override
public void setLocation(double latitude, double longitude) { public void setLocation(double latitude, double longitude) {
super.setLocation(latitude, longitude); super.setLocation(latitude, longitude);
@ -14,4 +15,13 @@ public class TransportStopExit extends MapObject {
y31 = dy << (31 - zoom); y31 = dy << (31 - zoom);
setLocation(MapUtils.getLatitudeFromTile(zoom, dy), MapUtils.getLongitudeFromTile(zoom, dx)); setLocation(MapUtils.getLatitudeFromTile(zoom, dy), MapUtils.getLongitudeFromTile(zoom, dx));
} }
public void setRef (String ref) {
this.ref = ref;
}
public String getRef() {
if (ref != null) {
return ref;
}
return "";
}
} }