merge code

This commit is contained in:
qiji4215
2023-09-05 12:26:21 +08:00
parent ba063003dd
commit ef13f9a926
4 changed files with 157 additions and 136 deletions

View File

@@ -9,6 +9,7 @@ import com.blankj.utilcode.util.FileIOUtils
import com.blankj.utilcode.util.ZipUtils import com.blankj.utilcode.util.ZipUtils
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import com.navinfo.collect.library.data.entity.HadLinkDvoBean
import com.navinfo.collect.library.data.entity.RenderEntity import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.data.entity.TaskBean import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.collect.library.enums.DataCodeEnum import com.navinfo.collect.library.enums.DataCodeEnum
@@ -153,6 +154,14 @@ class ImportOMDBHelper @AssistedInject constructor(
realm.beginTransaction() realm.beginTransaction()
try { try {
//缓存任务link信息便于下面与数据进行任务link匹配
val hashMap:HashMap<String,HadLinkDvoBean> = HashMap<String,HadLinkDvoBean>() //define empty hashmap
task.hadLinkDvoList.forEach{
hashMap.put(it.linkPid,it);
}
val resHashMap:HashMap<String,RenderEntity> = HashMap<String,RenderEntity>() //define empty hashmap
// 遍历解压后的文件,读取该数据返回 // 遍历解压后的文件,读取该数据返回
for (importConfig in importConfigList) { for (importConfig in importConfigList) {
for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) { for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) {
@@ -160,7 +169,6 @@ class ImportOMDBHelper @AssistedInject constructor(
val txtFile = unZipFiles.find { val txtFile = unZipFiles.find {
it.name == currentConfig.table it.name == currentConfig.table
} }
val listResult = mutableListOf<RenderEntity>() val listResult = mutableListOf<RenderEntity>()
currentConfig?.let { currentConfig?.let {
val list = FileIOUtils.readFile2List(txtFile, "UTF-8") val list = FileIOUtils.readFile2List(txtFile, "UTF-8")
@@ -289,6 +297,22 @@ class ImportOMDBHelper @AssistedInject constructor(
} }
} }
//交限增加相同LinkIn与LinkOut过滤原则
if(renderEntity.code==DataCodeEnum.OMDB_RESTRICTION.code){
if(renderEntity.properties.containsKey("linkIn")&&renderEntity.properties.containsKey("linkOut")){
var linkIn = renderEntity.properties["linkIn"]
var linkOut = renderEntity.properties["linkOut"]
if(linkIn!=null&&linkOut!=null){
var checkMsg = "$linkIn$linkOut"
if(resHashMap.containsKey(checkMsg)){
Log.e("qj","${renderEntity.name}==过滤交限linkin与linkout相同且存在多条数据")
continue
}else{
resHashMap.put(checkMsg,renderEntity)
}
}
}
}
//遍历判断只显示与任务Link相关的任务数据 //遍历判断只显示与任务Link相关的任务数据
if(currentConfig.checkLinkId){ if(currentConfig.checkLinkId){
@@ -299,32 +323,19 @@ class ImportOMDBHelper @AssistedInject constructor(
if(!currentLinkPid.isNullOrEmpty()&&currentLinkPid!="null"){ if(!currentLinkPid.isNullOrEmpty()&&currentLinkPid!="null"){
task.hadLinkDvoList.forEach{ var list = currentLinkPid.split(",")
if(it.linkPid==renderEntity.properties["linkPid"]){
if(list!=null&&list.size>0){
m@for (linkPid in list){
if(hashMap.containsKey(linkPid)){
renderEntity.enable = 1 renderEntity.enable = 1
Log.e("qj","${renderEntity.name}==包括任务link") Log.e("qj","${renderEntity.name}==包括任务link")
return@forEach break@m
}
} }
} }
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_RESTRICTION.code && renderEntity.properties.containsKey("linkIn")){
if (renderEntity.properties["linkIn"] != null) {
var currentLinkPid = renderEntity.properties["linkIn"]
if(!currentLinkPid.isNullOrEmpty()&&currentLinkPid!="null"){
task.hadLinkDvoList.forEach{
if(it.linkPid==currentLinkPid){
renderEntity.enable = 1
Log.e("qj","${renderEntity.name}==包括任务link")
return@forEach
}
}
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_INTERSECTION.code && renderEntity.properties.containsKey("linkList")){ }else if(renderEntity.code == DataCodeEnum.OMDB_INTERSECTION.code && renderEntity.properties.containsKey("linkList")){
if (renderEntity.properties["linkList"] != null) { if (renderEntity.properties["linkList"] != null) {
@@ -341,12 +352,10 @@ class ImportOMDBHelper @AssistedInject constructor(
if (list != null) { if (list != null) {
m@for (link in list){ m@for (link in list){
for(hadLink in task.hadLinkDvoList){ if(hashMap.containsKey(link.linkPid)){
if (hadLink.linkPid == link.linkPid) {
renderEntity.enable = 1 renderEntity.enable = 1
Log.e("qj", "${renderEntity.name}==包括任务link==${renderEntity.geometry}")
break@m break@m
} Log.e("qj","${renderEntity.name}==包括任务link")
} }
} }
} }
@@ -368,6 +377,7 @@ class ImportOMDBHelper @AssistedInject constructor(
// 对renderEntity做预处理后再保存 // 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity) val resultEntity = importConfig.transformProperties(renderEntity)
if(renderEntity!=null){
if(currentConfig.catch){ if(currentConfig.catch){
renderEntity.catchEnable=0 renderEntity.catchEnable=0
}else{ }else{
@@ -481,11 +491,13 @@ class ImportOMDBHelper @AssistedInject constructor(
} }
} }
listResult.add(renderEntity)
if (resultEntity != null) {
realm.insert(renderEntity) realm.insert(renderEntity)
} }
listResult.add(renderEntity)
} }
} }
} }

View File

@@ -18,7 +18,7 @@ class ImportPreProcess {
val code2NameMap = Code2NameMap() val code2NameMap = Code2NameMap()
lateinit var cacheRdLink: Map<String?, RenderEntity> lateinit var cacheRdLink: Map<String?, RenderEntity>
val defaultTranslateDistance = 3.0 val defaultTranslateDistance = 3.0
val testFlag:Boolean = true
fun checkCircleRoad(renderEntity: RenderEntity): Boolean { fun checkCircleRoad(renderEntity: RenderEntity): Boolean {
val linkInId = renderEntity.properties["linkIn"] val linkInId = renderEntity.properties["linkIn"]
val linkOutId = renderEntity.properties["linkOut"] val linkOutId = renderEntity.properties["linkOut"]
@@ -45,6 +45,9 @@ class ImportPreProcess {
* @param direction 判断当前数据是否为逆向给定的应该是一个a=b的表达式a为对应的properties的keyb为对应的值 * @param direction 判断当前数据是否为逆向给定的应该是一个a=b的表达式a为对应的properties的keyb为对应的值
* */ * */
fun translateRight(renderEntity: RenderEntity, direction: String = "") { fun translateRight(renderEntity: RenderEntity, direction: String = "") {
if(testFlag){
return
}
// 获取当前renderEntity的geometry // 获取当前renderEntity的geometry
val geometry = renderEntity.wkt val geometry = renderEntity.wkt
var radian = 0.0 // geometry的角度如果是点获取angle如果是线获取最后两个点的方向 var radian = 0.0 // geometry的角度如果是点获取angle如果是线获取最后两个点的方向
@@ -109,6 +112,9 @@ class ImportPreProcess {
* 向方向对应的反方向偏移 * 向方向对应的反方向偏移
* */ * */
fun translateBack(renderEntity: RenderEntity, direction: String = "") { fun translateBack(renderEntity: RenderEntity, direction: String = "") {
if(testFlag){
return
}
// 获取当前renderEntity的geometry // 获取当前renderEntity的geometry
val geometry = renderEntity.wkt val geometry = renderEntity.wkt
var isReverse = false // 是否为逆向 var isReverse = false // 是否为逆向
@@ -167,6 +173,9 @@ class ImportPreProcess {
* 生成偏移后数据的起终点参考线 * 生成偏移后数据的起终点参考线
* */ * */
fun generateS2EReferenceLine(renderEntity: RenderEntity) { fun generateS2EReferenceLine(renderEntity: RenderEntity) {
if(testFlag){
return
}
// 获取当前renderEntity的geometry该坐标为偏移后坐标即为终点 // 获取当前renderEntity的geometry该坐标为偏移后坐标即为终点
val translateGeometry = renderEntity.wkt val translateGeometry = renderEntity.wkt
val startGeometry = GeometryTools.createGeometry(renderEntity.properties["geometry"]) val startGeometry = GeometryTools.createGeometry(renderEntity.properties["geometry"])

View File

@@ -475,7 +475,7 @@ class MainViewModel @Inject constructor(
point.longitude, point.longitude,
point.latitude point.latitude
), ),
buffer = 1.0, catchAll = false buffer = 2.5, catchAll = false
) )
if (itemList.size == 1) { if (itemList.size == 1) {
@@ -499,13 +499,13 @@ class MainViewModel @Inject constructor(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
//val linkList = realmOperateHelper.queryLink(point = point) val linkList = realmOperateHelper.queryLink(point = point)
val linkList = realmOperateHelper.queryLine( /* val linkList = realmOperateHelper.queryLine(
point = point, point = point,
buffer = 1.0, buffer = 1.0,
table = "OMDB_RD_LINK_KIND" table = "OMDB_RD_LINK_KIND"
) )*/
var hisRoadName = false var hisRoadName = false

View File

@@ -185,7 +185,7 @@
width="0.1" /> width="0.1" />
<!--道路形态--> <!--道路形态-->
<style-line dasharray="8,2,2,2,2,2" id="road_morphology" repeat-gap="3" repeat-start="0" stroke="#1afa29" width="0.5" /> <style-line dasharray="8,2,2,2,2,2" id="road_morphology" repeat-gap="3" repeat-start="0" stroke="#1afa29" width="0.3" />
<!--###### ASSIGNMENT ######--> <!--###### ASSIGNMENT ######-->