diff --git a/collect-library/resources/rendertheme.xsd b/collect-library/resources/rendertheme.xsd
index fa7348c9..150d511c 100644
--- a/collect-library/resources/rendertheme.xsd
+++ b/collect-library/resources/rendertheme.xsd
@@ -257,7 +257,7 @@
-
+
diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml
index 069d9a1a..7e721c3d 100644
--- a/collect-library/src/main/assets/editormarker.xml
+++ b/collect-library/src/main/assets/editormarker.xml
@@ -1565,7 +1565,7 @@
-
@@ -1847,12 +1847,12 @@
-
+
-
+
diff --git a/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt b/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt
index 81eb8526..bbb8ddd5 100644
--- a/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt
+++ b/collect-library/src/main/java/com/navinfo/collect/library/enums/DataCodeEnum.kt
@@ -3,7 +3,7 @@ package com.navinfo.collect.library.enums
/*
* 要素枚举定义
* */
-enum class DataCodeEnum(var tableName: String, var code: String) {
+public enum class DataCodeEnum(var tableName: String, var code: String) {
OMDB_NODE_FORM("点形态", "1007-6"),
OMDB_NODE_PA("点形态PA", "1007-6"),
OMDB_CHECKPOINT("检查点", "1012"),
diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java
index bba003e7..d7505186 100644
--- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java
+++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBDataDecoder.java
@@ -63,24 +63,21 @@ public class OMDBDataDecoder extends TileDecoder {
}
@RequiresApi(api = Build.VERSION_CODES.N)
- public boolean decode(int mapLevel,Tile tile, ITileDataSink sink, List listResult) {
+ public boolean decode(int mapLevel, Tile tile, ITileDataSink sink, List listResult) {
mTileDataSink = sink;
mTileScale = 1 << tile.zoomLevel;
mTileX = tile.tileX / mTileScale;
mTileY = tile.tileY / mTileScale;
mTileScale *= Tile.SIZE;
-
- List list = GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFIC_SIGN.code,listResult,5.0);
-
- list.stream().iterator().forEachRemaining(new Consumer() {
+ listResult.stream().iterator().forEachRemaining(new Consumer() {
@Override
public void accept(RenderEntity renderEntity) {
- if(!(mapLevelrenderEntity.getZoomMax())){
- Map properties= new HashMap<>(renderEntity.getProperties().size());
+ if (!(mapLevel < renderEntity.getZoomMin() || mapLevel > renderEntity.getZoomMax())) {
+ Map properties = new HashMap<>(renderEntity.getProperties().size());
properties.putAll(renderEntity.getProperties());
parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties);
- }else{
+ } else {
// Log.e("qj","render"+renderEntity.name+"=="+renderEntity.getZoomMin()+"==="+renderEntity.getZoomMax()+"==="+renderEntity.getEnable());
}
}
@@ -108,14 +105,7 @@ public class OMDBDataDecoder extends TileDecoder {
processCoordinateArray(multiPoint.getGeometryN(i).getCoordinates(), false);
}
} else if (geometry instanceof LineString) {
- //将车道中心进行转化面渲染
- if(layerName!=null&&layerName.equals(DataCodeEnum.OMDB_LANE_LINK_LG.name())){
- Log.e("qj","车道中心线转化开始");
- processPolygon((Polygon) GeometryTools.createGeometry(GeometryTools.computeLine(0.000035,0.000035,geometry.toString())));
- Log.e("qj","车道中心线转化结束");
- }else{
- processLineString((LineString) geometry);
- }
+ processLineString((LineString) geometry);
} else if (geometry instanceof MultiLineString) {
MultiLineString multiLineString = (MultiLineString) geometry;
for (int i = 0; i < multiLineString.getNumGeometries(); i++) {
@@ -201,8 +191,8 @@ public class OMDBDataDecoder extends TileDecoder {
mMapElement.tags.add(new Tag(Tag.KEY_NAME, fallbackName, false));
}
- public void clean(){
- if(mTileDataSink!=null){
+ public void clean() {
+ if (mTileDataSink != null) {
mTileDataSink.notifyAll();
}
}
diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBReferenceDecoder.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBReferenceDecoder.java
index a0b9e2e7..f6c73934 100644
--- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBReferenceDecoder.java
+++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBReferenceDecoder.java
@@ -63,7 +63,7 @@ public class OMDBReferenceDecoder extends TileDecoder {
}
@RequiresApi(api = Build.VERSION_CODES.N)
- public boolean decode(int mapLevel,Tile tile, ITileDataSink sink, List listResult) {
+ public boolean decode(int mapLevel, Tile tile, ITileDataSink sink, List listResult) {
mTileDataSink = sink;
mTileScale = 1 << tile.zoomLevel;
mTileX = tile.tileX / mTileScale;
@@ -73,8 +73,8 @@ public class OMDBReferenceDecoder extends TileDecoder {
listResult.stream().iterator().forEachRemaining(new Consumer() {
@Override
public void accept(ReferenceEntity renderEntity) {
- if(!(mapLevelrenderEntity.getZoomMax())){
- Map properties= new HashMap<>(renderEntity.getProperties().size());
+ if (!(mapLevel < renderEntity.getZoomMin() || mapLevel > renderEntity.getZoomMax())) {
+ Map properties = new HashMap<>(renderEntity.getProperties().size());
properties.putAll(renderEntity.getProperties());
parseGeometry(renderEntity.getTable(), renderEntity.getWkt(), properties);
}
@@ -103,14 +103,7 @@ public class OMDBReferenceDecoder extends TileDecoder {
processCoordinateArray(multiPoint.getGeometryN(i).getCoordinates(), false);
}
} else if (geometry instanceof LineString) {
- //将车道中心进行转化面渲染
- if(layerName!=null&&layerName.equals(DataCodeEnum.OMDB_LANE_LINK_LG.name())){
- Log.e("qj","车道中心线转化开始");
- processPolygon((Polygon)GeometryTools.createGeometry(GeometryTools.computeLine(0.000035,0.000035,geometry.toString())));
- Log.e("qj","车道中心线转化结束");
- }else{
- processLineString((LineString) geometry);
- }
+ processLineString((LineString) geometry);
} else if (geometry instanceof MultiLineString) {
MultiLineString multiLineString = (MultiLineString) geometry;
for (int i = 0; i < multiLineString.getNumGeometries(); i++) {
diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java
index 49112267..0130d367 100644
--- a/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java
+++ b/collect-library/src/main/java/com/navinfo/collect/library/map/source/OMDBTileDataSource.java
@@ -129,7 +129,7 @@ public class OMDBTileDataSource implements ITileDataSource {
realmQuery.endGroup();
}
long time = System.currentTimeMillis();
- List listResult = realmQuery.findAll();
+ List listResult = realm.copyFromRealm(realmQuery.findAll());
long newTime = System.currentTimeMillis() - time;
// Log.e("jingo", "当前OMDBTileDataSource " + Thread.currentThread().hashCode() + " 当前realm " + realm.hashCode() + " 查询耗时" + newTime + " 条数" + listResult.size());
@@ -142,8 +142,13 @@ public class OMDBTileDataSource implements ITileDataSource {
/*过滤数据,只有最小x(屏幕的最小x或数据的最小x会被渲染,跨Tile的其他数据不再重复渲染)*/
// .filter((RenderEntity renderEntity) -> MercatorProjection.longitudeToTileX(viewport.fromScreenPoint(0,0).getLongitude(), (byte) Constant.DATA_ZOOM) == currentTileX || renderEntity.getTileX().stream().min(Integer::compare).get() == currentTileX)
.collect(Collectors.toList());
- mThreadLocalDecoders.get().decode(tile.zoomLevel, tile, mapDataSink, listResult);
+
+ List list = GeometryTools.groupByDistance("3005", listResult, 5.0);
+
+ mThreadLocalDecoders.get().decode(tile.zoomLevel, tile, mapDataSink, list);
+
mapDataSink.completed(QueryResult.SUCCESS);
+
} else {
mapDataSink.completed(QueryResult.SUCCESS);
}
diff --git a/collect-library/src/main/java/com/navinfo/collect/library/utils/GeometryTools.java b/collect-library/src/main/java/com/navinfo/collect/library/utils/GeometryTools.java
index c3ee4fe1..1a660a89 100644
--- a/collect-library/src/main/java/com/navinfo/collect/library/utils/GeometryTools.java
+++ b/collect-library/src/main/java/com/navinfo/collect/library/utils/GeometryTools.java
@@ -1592,10 +1592,11 @@ public class GeometryTools {
java.util.Map calcMap = new HashMap<>();
int count = 0;
+
//遍历开始
for (RenderEntity renderEntity : list) {
- if(!TextUtils.isEmpty(code)&&renderEntity.getCode()!=code){
+ if(!TextUtils.isEmpty(code)&&!renderEntity.getCode().equals(code)){
listReslut.add(renderEntity);
calcMap.put(renderEntity.getId(),renderEntity);
continue;
@@ -1610,6 +1611,7 @@ public class GeometryTools {
if (renderEntity.getId().equals(renderEntityTemp.getId())) {
listReslut.add(renderEntityTemp);
count++;
+ Log.e("qj", "====计算间距" + count);
calcMap.put(renderEntityTemp.getId(), renderEntityTemp);
} else {
GeoPoint geoPoint = createGeoPoint(renderEntity.getGeometry());
@@ -1631,7 +1633,7 @@ public class GeometryTools {
}
}
- Log.e("qj", "====计算间距====" + listReslut.size()+"==判断后=="+list.size());
+ Log.e("qj", listReslut.size()+"==判断后=="+list.size()+"==="+calcMap.size());
return listReslut;
}
diff --git a/vtm b/vtm
index 9e0cc6dc..a6787549 160000
--- a/vtm
+++ b/vtm
@@ -1 +1 @@
-Subproject commit 9e0cc6dcdce04d1082ed6459e8810d6329e8cfdc
+Subproject commit a6787549efde8f445965faf41c17c9b58ddbd578