Update rendering types for new Android version & new map creator
This commit is contained in:
parent
778a72992f
commit
6ff89eff04
4 changed files with 568 additions and 239 deletions
|
@ -55,29 +55,10 @@ public class BinaryInspector {
|
|||
in.inspector(args);
|
||||
// test cases show info
|
||||
|
||||
run(in);
|
||||
run(in);
|
||||
// in.inspector(new String[]{"-vmap", "-vmapobjects", /*"-vstreets", "-bbox=14.4,50.1,14.5,50.01", */"/home/victor/projects/osmand/osm-gen/Osmand_regions.obf"});
|
||||
in.inspector(new String[]{"-vpoi",/*"-vmap", "-vmapobjects", *//*"-vstreets", "-bbox=14.4,50.1,14.5,50.01", */"/home/victor/projects/osmand/osm-gen/Map.obf"});
|
||||
// test case extract parts
|
||||
// test case
|
||||
}
|
||||
|
||||
|
||||
private static void run(BinaryInspector in) throws IOException {
|
||||
long ts = System.currentTimeMillis();
|
||||
int tileX = 1051;
|
||||
int tileY = 673;
|
||||
int zoom = 11;
|
||||
float lt = (float) MapUtils.getLatitudeFromTile(zoom, tileY);
|
||||
float lb = (float) MapUtils.getLatitudeFromTile(zoom, tileY + 1);
|
||||
float ll = (float) MapUtils.getLongitudeFromTile(zoom, tileX);
|
||||
float lr = (float) MapUtils.getLongitudeFromTile(zoom, tileX + 1);
|
||||
String bbox = "-bbox="+ll+","+lt+","+lr+","+lb;
|
||||
System.out.println("Tile z="+zoom+" x="+tileX +" y=" + tileY + " " + bbox);
|
||||
in.inspector(new String[]{"-vmap", "-vmapobjects", /*"-vstreets", */ "-zoom="+zoom,
|
||||
bbox, "/home/victor/projects/osmand/osm-gen/World_basemap_2.obf"});
|
||||
System.out.println("Time " + (System.currentTimeMillis() - ts)+" ms");
|
||||
}
|
||||
|
||||
private void printToFile(String s) throws IOException {
|
||||
if(vInfo.osmOut != null) {
|
||||
|
@ -91,7 +72,7 @@ public class BinaryInspector {
|
|||
if(vInfo != null && vInfo.osm && vInfo.osmOut == null) {
|
||||
// ignore
|
||||
} else {
|
||||
// System.out.println(s);
|
||||
System.out.println(s);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -100,7 +81,7 @@ public class BinaryInspector {
|
|||
if(vInfo != null && vInfo.osm && vInfo.osmOut == null) {
|
||||
// ignore
|
||||
} else {
|
||||
// System.out.print(s);
|
||||
System.out.print(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -799,7 +780,8 @@ public class BinaryInspector {
|
|||
new ResultMatcher<Amenity>() {
|
||||
@Override
|
||||
public boolean publish(Amenity object) {
|
||||
println(object.getType().toString() + " : " + object.getSubType() + " " + object.getEnName() + " " + object.getLocation() + " id=" + (object.getId() >> 1));
|
||||
println(object.getType().toString() + " : " + object.getSubType() + " " + object.getName() + " " + object.getLocation() + " id=" + (object.getId() >> 1) + " " +
|
||||
object.getAdditionalInfo());
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -114,5 +114,10 @@ public class AmenityType {
|
|||
return a.getCategoryName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return valueToString(this);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -174,8 +174,19 @@ public class MapRenderingTypes {
|
|||
if (rType == null || !rType.isPOI()) {
|
||||
rType = types.get(constructRuleKey(tag, null));
|
||||
}
|
||||
if(!rType.isPOI()) {
|
||||
if(rType == null || !rType.isPOI()) {
|
||||
return null;
|
||||
} else if(rType.isAdditional() && rType.tagValuePattern.value == null) {
|
||||
MapRulType parent = rType;
|
||||
rType = MapRulType.createAdditional(tag, val);
|
||||
rType.additional = true;
|
||||
rType.applyToTagValue = parent.applyToTagValue;
|
||||
rType.onlyMap = parent.onlyMap;
|
||||
rType.onlyPoi = parent.onlyPoi;
|
||||
rType.onlyPoint = parent.onlyPoint;
|
||||
rType.poiSpecified = parent.poiSpecified;
|
||||
rType.poiCategory = parent.poiCategory;
|
||||
registerRuleType(rType);
|
||||
}
|
||||
return rType;
|
||||
}
|
||||
|
@ -334,12 +345,12 @@ public class MapRenderingTypes {
|
|||
value = null;
|
||||
}
|
||||
MapRulType rtype = MapRulType.createMainEntity(tag, value);
|
||||
boolean onlyMap = "true".equals(parser.getAttributeValue("", "only_map"));
|
||||
if("true".equals(additional)) {
|
||||
rtype = MapRulType.createMainEntity(tag, value);
|
||||
rtype = MapRulType.createAdditional(tag, value);
|
||||
} else if("text".equals(additional)) {
|
||||
rtype = MapRulType.createText(tag);
|
||||
}
|
||||
rtype.onlyMap = "true".equals(parser.getAttributeValue("", "only_map"));
|
||||
String targetTag = parser.getAttributeValue("", "target_tag");
|
||||
String targetValue = parser.getAttributeValue("", "target_value");
|
||||
if (targetTag != null || targetValue != null) {
|
||||
|
@ -360,7 +371,7 @@ public class MapRenderingTypes {
|
|||
rtype.applyToTagValue = new HashSet<TagValuePattern>();
|
||||
rtype.applyToTagValue.add(new TagValuePattern(applyTo, applyValue));
|
||||
}
|
||||
if(!onlyMap) {
|
||||
if(!rtype.onlyMap) {
|
||||
registerRuleType(rtype);
|
||||
}
|
||||
|
||||
|
@ -617,8 +628,12 @@ public class MapRenderingTypes {
|
|||
return targetPoiId;
|
||||
}
|
||||
|
||||
public void setTargetPoiId(int targetPoiId) {
|
||||
this.targetPoiId = targetPoiId;
|
||||
public void setTargetPoiId(int catId, int valueId) {
|
||||
if(catId <= 31) {
|
||||
this.targetPoiId = (valueId << 6) | (catId << 1) ;
|
||||
} else {
|
||||
this.targetPoiId = (valueId << 16) | (catId << 1) | 1;
|
||||
}
|
||||
}
|
||||
|
||||
public int getInternalId() {
|
||||
|
|
Loading…
Reference in a new issue