调整渲染级别

This commit is contained in:
qiji4215 2023-07-26 18:37:35 +08:00
parent 43bd63a397
commit 27e812c49f
7 changed files with 78 additions and 63 deletions

View File

@ -4,43 +4,43 @@
"table": "OMDB_CHECKPOINT", "table": "OMDB_CHECKPOINT",
"code": 1012, "code": 1012,
"name": "检查点", "name": "检查点",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 23 "zoomMax": 19
}, },
"2001": { "2001": {
"table": "OMDB_RD_LINK", "table": "OMDB_RD_LINK",
"code": 2001, "code": 2001,
"name": "道路线", "name": "道路线",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19 "zoomMax": 17
}, },
"2002": { "2002": {
"table": "OMDB_RD_LINK_FUNCTION_CLASS", "table": "OMDB_RD_LINK_FUNCTION_CLASS",
"code": 2002, "code": 2002,
"name": "道路功能等级", "name": "道路功能等级",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19 "zoomMax": 17
}, },
"2008": { "2008": {
"table": "OMDB_RD_LINK_KIND", "table": "OMDB_RD_LINK_KIND",
"code": 2008, "code": 2008,
"name": "道路种别", "name": "道路种别",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19 "zoomMax": 17
}, },
"2010": { "2010": {
"table": "OMDB_LINK_DIRECT", "table": "OMDB_LINK_DIRECT",
"code": 2010, "code": 2010,
"name": "道路方向", "name": "道路方向",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19 "zoomMax": 17
}, },
"2011": { "2011": {
"table": "OMDB_LINK_NAME", "table": "OMDB_LINK_NAME",
"code": 2011, "code": 2011,
"name": "道路名", "name": "道路名",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19, "zoomMax": 17,
"transformer": [ "transformer": [
{ {
"k": "geometry", "k": "geometry",
@ -54,8 +54,8 @@
"table": "OMDB_LANE_MARK_BOUNDARYTYPE", "table": "OMDB_LANE_MARK_BOUNDARYTYPE",
"code": 2013, "code": 2013,
"name": "车道边界类型", "name": "车道边界类型",
"zoomMin": 20, "zoomMin": 18,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
{ {
"k": "geometry", "k": "geometry",
@ -69,22 +69,22 @@
"table": "OMDB_LINK_SPEEDLIMIT", "table": "OMDB_LINK_SPEEDLIMIT",
"code": 2019, "code": 2019,
"name": "常规线限速", "name": "常规线限速",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19 "zoomMax": 17
}, },
"2020": { "2020": {
"table": "OMDB_LINK_SPEEDLIMIT_COND", "table": "OMDB_LINK_SPEEDLIMIT_COND",
"code": 2020, "code": 2020,
"name": "条件线限速", "name": "条件线限速",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19 "zoomMax": 17
}, },
"2021": { "2021": {
"table": "OMDB_LINK_SPEEDLIMIT_VAR", "table": "OMDB_LINK_SPEEDLIMIT_VAR",
"code": 2021, "code": 2021,
"name": "可变线限速", "name": "可变线限速",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19 "zoomMax": 17
}, },
"2022": { "2022": {
"table": "OMDB_CON_ACCESS", "table": "OMDB_CON_ACCESS",
@ -110,8 +110,8 @@
"table": "OMDB_RDBOUND_BOUNDARYTYPE", "table": "OMDB_RDBOUND_BOUNDARYTYPE",
"code": 2083, "code": 2083,
"name": "道路边界类型", "name": "道路边界类型",
"zoomMin": 20, "zoomMin": 18,
"zoomMax": 23 "zoomMax": 21
}, },
"2201":{ "2201":{
"table": "OMDB_BRIDGE", "table": "OMDB_BRIDGE",
@ -122,8 +122,8 @@
"table": "OMDB_TUNNEL", "table": "OMDB_TUNNEL",
"code": 2202, "code": 2202,
"name": "隧道", "name": "隧道",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
{ {
"k": "geometry", "k": "geometry",
@ -137,8 +137,8 @@
"table": "OMDB_INTERSECTION", "table": "OMDB_INTERSECTION",
"code": 4001, "code": 4001,
"name": "路口", "name": "路口",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19, "zoomMax": 17,
"transformer": [ "transformer": [
{ {
"k": "geometry", "k": "geometry",
@ -152,8 +152,8 @@
"table": "OMDB_SPEEDLIMIT", "table": "OMDB_SPEEDLIMIT",
"code": 4002, "code": 4002,
"name": "常规点限速", "name": "常规点限速",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
{ {
"k": "maxSpeed", "k": "maxSpeed",
@ -173,8 +173,8 @@
"table": "OMDB_SPEEDLIMIT_COND", "table": "OMDB_SPEEDLIMIT_COND",
"code": 4003, "code": 4003,
"name": "条件点限速", "name": "条件点限速",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
{ {
"k": "maxSpeed", "k": "maxSpeed",
@ -188,8 +188,8 @@
"table": "OMDB_SPEEDLIMIT_VAR", "table": "OMDB_SPEEDLIMIT_VAR",
"code": 4004, "code": 4004,
"name": "可变点限速", "name": "可变点限速",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
{ {
"k": "location", "k": "location",
@ -215,8 +215,8 @@
"table": "OMDB_RESTRICTION", "table": "OMDB_RESTRICTION",
"code": 4006, "code": 4006,
"name": "普通交限", "name": "普通交限",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
{ {
"k": "geometry", "k": "geometry",
@ -254,8 +254,8 @@
"table": "OMDB_ELECTRONICEYE", "table": "OMDB_ELECTRONICEYE",
"code": 4010, "code": 4010,
"name": "电子眼", "name": "电子眼",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
{ {
"k": "geometry", "k": "geometry",
@ -287,8 +287,8 @@
"table": "OMDB_TRAFFICLIGHT", "table": "OMDB_TRAFFICLIGHT",
"code": 4022, "code": 4022,
"name": "交通灯", "name": "交通灯",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
] ]
}, },
@ -296,8 +296,8 @@
"table": "OMDB_LANEINFO", "table": "OMDB_LANEINFO",
"code": 4601, "code": 4601,
"name": "车信", "name": "车信",
"zoomMin": 18, "zoomMin": 16,
"zoomMax": 19, "zoomMax": 17,
"transformer": [ "transformer": [
{ {
"k": "geometry", "k": "geometry",
@ -323,8 +323,8 @@
"table": "OMDB_LANE_LINK_LG", "table": "OMDB_LANE_LINK_LG",
"code": 5001, "code": 5001,
"name": "车道中心线", "name": "车道中心线",
"zoomMin": 20, "zoomMin": 18,
"zoomMax": 23, "zoomMax": 21,
"transformer": [ "transformer": [
{ {
"k": "geometry", "k": "geometry",

View File

@ -115,8 +115,8 @@ class ImportConfig {
class TableInfo { class TableInfo {
val table: String = "" val table: String = ""
val code: Int = 0 val code: Int = 0
val zoomMin: Int = 18 val zoomMin: Int = 16
val zoomMax: Int = 23 val zoomMax: Int = 21
val name: String = "" val name: String = ""
var checked : Boolean = true var checked : Boolean = true
var transformer: MutableList<Transform> = mutableListOf() var transformer: MutableList<Transform> = mutableListOf()

View File

@ -189,6 +189,8 @@ class MainViewModel @Inject constructor(
private var disTime: Long = 1000 private var disTime: Long = 1000
private var currentMapZoomLevel: Int = 0
init { init {
mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition -> mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition ->
@ -196,8 +198,13 @@ class MainViewModel @Inject constructor(
Map.SCALE_EVENT, Map.MOVE_EVENT, Map.ROTATE_EVENT -> liveDataCenterPoint.value = Map.SCALE_EVENT, Map.MOVE_EVENT, Map.ROTATE_EVENT -> liveDataCenterPoint.value =
mapPosition mapPosition
} }
if(mapController.mMapView.vtmMap.mapPosition.zoomLevel>=16){
}
currentMapZoomLevel = mapController.mMapView.vtmMap.mapPosition.zoomLevel
}) })
currentMapZoomLevel = mapController.mMapView.vtmMap.mapPosition.zoomLevel
shareUtil = ShareUtil(mapController.mMapView.context, 1) shareUtil = ShareUtil(mapController.mMapView.context, 1)

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<rendertheme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" map-background="#f4f4f4" <rendertheme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" map-background="#bfbfbf"
version="1" xmlns="http://opensciencemap.org/rendertheme" xsi:schemaLocation="http://opensciencemap.org/rendertheme version="1" xmlns="http://opensciencemap.org/rendertheme" xsi:schemaLocation="http://opensciencemap.org/rendertheme
https://raw.githubusercontent.com/mapsforge/vtm/master/resources/rendertheme.xsd"> https://raw.githubusercontent.com/mapsforge/vtm/master/resources/rendertheme.xsd">
@ -1486,18 +1486,18 @@
</m> </m>
<!-- 道路线 --> <!-- 道路线 -->
<m v="OMDB_RD_LINK" zoom-max="19"> <m v="OMDB_RD_LINK">
<line stroke="#9c9c9c" width="1" /> <line stroke="#9c9c9c" width="1" />
</m> </m>
<!-- 检查点 --> <!-- 检查点 -->
<m v="OMDB_CHECKPOINT" zoom-max="19"> <m v="OMDB_CHECKPOINT">
<symbol src="assets:omdb/icon_1012_0.svg" symbol-height="64" <symbol src="assets:omdb/icon_1012_0.svg" symbol-height="64"
symbol-width="64"></symbol> symbol-width="64"></symbol>
</m> </m>
<!--道路种别--> <!--道路种别-->
<m v="OMDB_RD_LINK_KIND" zoom-max="19"> <m v="OMDB_RD_LINK_KIND">
<outline-layer id="kind0" stroke="#44000000" width="0.1" /> <outline-layer id="kind0" stroke="#44000000" width="0.1" />
<outline-layer id="kind1" stroke="#aa807040" width="0.1" /> <outline-layer id="kind1" stroke="#aa807040" width="0.1" />
<m k="kind" v="1"> <m k="kind" v="1">
@ -1530,7 +1530,7 @@
</m> </m>
<!--常规点限速--> <!--常规点限速-->
<m v="OMDB_SPEEDLIMIT" zoom-max="19"> <m v="OMDB_SPEEDLIMIT">
<m k="speedFlag" v="0"> <m k="speedFlag" v="0">
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff" <caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption> stroke-width="1.0"></caption>
@ -1562,7 +1562,7 @@
</m> </m>
<!--可变点限速--> <!--可变点限速-->
<m v="OMDB_SPEEDLIMIT_VAR" zoom-max="19"> <m v="OMDB_SPEEDLIMIT_VAR" >
<m k="speedFlag" v="0"> <m k="speedFlag" v="0">
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff" <caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption> stroke-width="1.0"></caption>
@ -1578,14 +1578,14 @@
</m> </m>
<!--车道中心线--> <!--车道中心线-->
<m v="OMDB_LANE_LINK_LG" zoom-min="20"> <m v="OMDB_LANE_LINK_LG">
<m k="width" v="~"> <m k="width" v="~">
<line stroke="#7A88A0" width="5" /> <line stroke="#7A88A0" width="5" />
</m> </m>
</m>0 </m>0
<!-- 道路边界类型 --> <!-- 道路边界类型 -->
<m v="OMDB_RDBOUND_BOUNDARYTYPE" zoom-min="20"> <m v="OMDB_RDBOUND_BOUNDARYTYPE">
<outline-layer id="boundaryType" stroke="#8e44ad" width="0.1" /> <outline-layer id="boundaryType" stroke="#8e44ad" width="0.1" />
<m k="boundaryType" v="0|2|3|4|5|6|7|8|9"> <m k="boundaryType" v="0|2|3|4|5|6|7|8|9">
<line stroke="#ffffff" use="boundaryType" width="0.1"/> <line stroke="#ffffff" use="boundaryType" width="0.1"/>
@ -1597,7 +1597,7 @@
</m> </m>
<!-- 车道边界类型 --> <!-- 车道边界类型 -->
<m v="OMDB_LANE_MARK_BOUNDARYTYPE" zoom-min="20"> <m v="OMDB_LANE_MARK_BOUNDARYTYPE">
<outline-layer id="boundary" stroke="#ffffff" width="0.1" /> <outline-layer id="boundary" stroke="#ffffff" width="0.1" />
<m k="boundaryType" v="2"> <m k="boundaryType" v="2">
<!--标线--> <!--标线-->
@ -1660,7 +1660,7 @@
</m> </m>
<!--隧道--> <!--隧道-->
<m v="OMDB_TUNNEL" zoom-max="19"> <m v="OMDB_TUNNEL">
<m k="formOfWay"> <m k="formOfWay">
<line dasharray="0.2,0.2" stroke="#d4237a" width="0.2" /> <line dasharray="0.2,0.2" stroke="#d4237a" width="0.2" />
</m> </m>
@ -1687,13 +1687,13 @@
</m> </m>
<!--交通灯--> <!--交通灯-->
<m v="OMDB_TRAFFICLIGHT" zoom-max="19"> <m v="OMDB_TRAFFICLIGHT">
<symbol repeat="false" rotate="false" src="assets:omdb/icon_4022_0.svg" <symbol repeat="false" rotate="false" src="assets:omdb/icon_4022_0.svg"
symbol-height="69" symbol-width="69"></symbol> symbol-height="69" symbol-width="69"></symbol>
</m> </m>
<!--普通交限--> <!--普通交限-->
<m v="OMDB_RESTRICTION" zoom-max="19"> <m v="OMDB_RESTRICTION">
<m k="angle"> <m k="angle">
<symbol repeat="false" repeat-start="0" rotate="false" <symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_4006_0.svg" symbol-height="69" symbol-width="69"></symbol> src="assets:omdb/icon_4006_0.svg" symbol-height="69" symbol-width="69"></symbol>
@ -1709,7 +1709,7 @@
</m> </m>
<!--电子眼--> <!--电子眼-->
<m v="OMDB_ELECTRONICEYE" zoom-max="19"> <m v="OMDB_ELECTRONICEYE">
<caption dy="-30" fill="#000000" k="name" priority="0" size="14" <caption dy="-30" fill="#000000" k="name" priority="0" size="14"
stroke="#ffffff" stroke-width="1.0"></caption> stroke="#ffffff" stroke-width="1.0"></caption>
<m k="type" v="angle"> <m k="type" v="angle">
@ -1722,7 +1722,7 @@
</m> </m>
<!-- 路口 --> <!-- 路口 -->
<m v="OMDB_INTERSECTION" zoom-max="19"> <m v="OMDB_INTERSECTION">
<m k="type" v="node"> <m k="type" v="node">
<symbol src="assets:symbols/dot_blue_dark.svg"></symbol> <symbol src="assets:symbols/dot_blue_dark.svg"></symbol>
</m> </m>
@ -1737,7 +1737,7 @@
</m> </m>
<!-- 车信 --> <!-- 车信 -->
<m v="OMDB_LANEINFO" zoom-max="19"> <m v="OMDB_LANEINFO" >
<m k="currentType" v="0"> <m k="currentType" v="0">
<m k="currentDirect" v="1"> <m k="currentDirect" v="1">
<symbol repeat="false" repeat-start="0" repeat-gap="2000" <symbol repeat="false" repeat-start="0" repeat-gap="2000"

View File

@ -64,7 +64,7 @@ public class OMDBDataDecoder extends TileDecoder {
} }
@RequiresApi(api = Build.VERSION_CODES.N) @RequiresApi(api = Build.VERSION_CODES.N)
public boolean decode(int zoomLevel,Tile tile, ITileDataSink sink, List<RenderEntity> listResult) { public boolean decode(int mapLevel,Tile tile, ITileDataSink sink, List<RenderEntity> listResult) {
mTileDataSink = sink; mTileDataSink = sink;
mTileScale = 1 << tile.zoomLevel; mTileScale = 1 << tile.zoomLevel;
mTileX = tile.tileX / mTileScale; mTileX = tile.tileX / mTileScale;
@ -74,10 +74,12 @@ public class OMDBDataDecoder extends TileDecoder {
listResult.stream().iterator().forEachRemaining(new Consumer<RenderEntity>() { listResult.stream().iterator().forEachRemaining(new Consumer<RenderEntity>() {
@Override @Override
public void accept(RenderEntity renderEntity) { public void accept(RenderEntity renderEntity) {
if(zoomLevel>=renderEntity.getZoomMin()&&zoomLevel<=renderEntity.getZoomMax()){ if(!(mapLevel<renderEntity.getZoomMin()||mapLevel>renderEntity.getZoomMax())){
Map<String, Object> properties= new HashMap<>(renderEntity.getProperties().size()); Map<String, Object> properties= new HashMap<>(renderEntity.getProperties().size());
properties.putAll(renderEntity.getProperties()); properties.putAll(renderEntity.getProperties());
parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties); parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties);
}else{
Log.e("qj","render"+renderEntity.name+"=="+renderEntity.getZoomMin()+"==="+renderEntity.getZoomMax());
} }
} }
}); });
@ -188,4 +190,10 @@ public class OMDBDataDecoder extends TileDecoder {
if (!hasName && fallbackName != null) if (!hasName && fallbackName != null)
mMapElement.tags.add(new Tag(Tag.KEY_NAME, fallbackName, false)); mMapElement.tags.add(new Tag(Tag.KEY_NAME, fallbackName, false));
} }
public void clean(){
if(mTileDataSink!=null){
mTileDataSink.notifyAll();
}
}
} }

View File

@ -70,7 +70,7 @@ public class OMDBReferenceDecoder extends TileDecoder {
listResult.stream().iterator().forEachRemaining(new Consumer<ReferenceEntity>() { listResult.stream().iterator().forEachRemaining(new Consumer<ReferenceEntity>() {
@Override @Override
public void accept(ReferenceEntity renderEntity) { public void accept(ReferenceEntity renderEntity) {
if(mapLevel>=renderEntity.getZoomMin()&&mapLevel<=renderEntity.getZoomMax()){ if(!(mapLevel<renderEntity.getZoomMin()||mapLevel>renderEntity.getZoomMax())){
Map<String, Object> properties= new HashMap<>(renderEntity.getProperties().size()); Map<String, Object> properties= new HashMap<>(renderEntity.getProperties().size());
properties.putAll(renderEntity.getProperties()); properties.putAll(renderEntity.getProperties());
parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties); parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties);

View File

@ -31,7 +31,7 @@ public class Constant {
public static String[] HAD_LAYER_INVISIABLE_ARRAY; public static String[] HAD_LAYER_INVISIABLE_ARRAY;
public static final int OVER_ZOOM = 21; public static final int OVER_ZOOM = 21;
public static final int MAX_ZOOM = 23; public static final int MAX_ZOOM = 23;
public static final int OMDB_MIN_ZOOM = 18; public static final int OMDB_MIN_ZOOM = 16;
/** /**
* 服务器地址 * 服务器地址