diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index 0a684a78..c190b36a 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -615,7 +615,7 @@ "table": "OMDB_LANE_LINK_LG", "code": 5001, "name": "车道中心线", - "catch": true, + "catch": false, "isDependOnOtherTable": false, "checkLinkId": false, "zoomMin": 18, diff --git a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt index 009dd84d..6bff40d4 100644 --- a/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/RealmOperateHelper.kt @@ -306,8 +306,7 @@ class RealmOperateHelper() { .equals("LINESTRING") || it.wkt?.geometryType?.uppercase().equals("POLYGON") } else { polygon.intersects(it.wkt) && it.wkt?.geometryType?.uppercase() - .equals("POINT") || it.wkt?.geometryType?.uppercase() - .equals("LINESTRING") || it.wkt?.geometryType?.uppercase().equals("POLYGON") + .equals("POINT") || it.wkt?.geometryType?.uppercase().equals("POLYGON") } }?.toList() queryResult?.let { diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 624d1354..365bb182 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -23,6 +23,7 @@ import com.blankj.utilcode.util.ClipboardUtils import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.tabs.TabLayout import com.navinfo.collect.library.data.entity.RenderEntity +import com.navinfo.collect.library.enums.DataCodeEnum import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.map.handler.MeasureLayerHandler import com.navinfo.collect.library.utils.DeflaterUtil @@ -828,7 +829,7 @@ class MainActivity : BaseActivity() { var index = 0 Log.e("qj","====计算开始") var lastRender:RenderEntity = RenderEntity() - GeometryTools.groupByDistance(result, 5.0)?.forEach { + GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFIC_SIGN.code,result, 5.0)?.forEach { if(lastRender!=null&&lastRender.geometry!=null&& lastRender.geometry != ""){ if(it.geometry!=lastRender.geometry){ Log.e("qj","${index++}====计算后"+it.geometry) diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index f3e26dc5..069d9a1a 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -2022,7 +2022,7 @@ - + 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 95b92fc2..bba003e7 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 @@ -70,7 +70,9 @@ public class OMDBDataDecoder extends TileDecoder { mTileY = tile.tileY / mTileScale; mTileScale *= Tile.SIZE; - listResult.stream().iterator().forEachRemaining(new Consumer() { + List list = GeometryTools.groupByDistance(DataCodeEnum.OMDB_TRAFFIC_SIGN.code,listResult,5.0); + + list.stream().iterator().forEachRemaining(new Consumer() { @Override public void accept(RenderEntity renderEntity) { 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 56ba3839..c3ee4fe1 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 @@ -1581,7 +1581,7 @@ public class GeometryTools { * @param list * @return */ - public static List groupByDistance(List list, double disance) { + public static List groupByDistance(String code,List list, double disance) { if (list == null || disance <= 0) { return null; @@ -1595,6 +1595,12 @@ public class GeometryTools { //遍历开始 for (RenderEntity renderEntity : list) { + if(!TextUtils.isEmpty(code)&&renderEntity.getCode()!=code){ + listReslut.add(renderEntity); + calcMap.put(renderEntity.getId(),renderEntity); + continue; + } + if (!calcMap.containsKey(renderEntity.getId())) { //跟要素遍历对比,如果统一个点直接标记计算并记录在内,已经计算过不在二次计算 @@ -1625,7 +1631,7 @@ public class GeometryTools { } } - Log.e("qj", "====计算间距====" + count); + Log.e("qj", "====计算间距====" + listReslut.size()+"==判断后=="+list.size()); return listReslut; }