Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS

 Conflicts:
	vtm
This commit is contained in:
squallzhjch
2023-09-01 17:21:18 +08:00
66 changed files with 1058 additions and 73 deletions

View File

@@ -46,6 +46,7 @@
"name": "道路种别",
"zoomMin": 15,
"zoomMax": 20,
"catch":false,
"checkLinkId": false
},
"2010": {
@@ -173,7 +174,7 @@
"name": "文字",
"zoomMin": 15,
"zoomMax": 20,
"transformer2Code": ""
"transformer": []
},
"3003":{
"table": "OMDB_OBJECT_SYMBOL",
@@ -181,7 +182,22 @@
"name": "符号",
"zoomMin": 15,
"zoomMax": 20,
"transformer2Code": ""
"transformer": []
},
"3004":{
"table": "OMDB_OBJECT_ARROW",
"code": 3004,
"name": "箭头",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "obtainDynamicSrc('assets:omdb/arrowDirection/','.svg','arrowClass')"
}
]
},
"3005":{
"table": "OMDB_TRAFFIC_SIGN",
@@ -472,6 +488,7 @@
"name": "车道中心线",
"zoomMin": 18,
"zoomMax": 20,
"catch":false,
"transformer": [
{
"k": "geometry",

View File

@@ -122,6 +122,7 @@ class TableInfo {
val zoomMin: Int = 16
val zoomMax: Int = 21
val checkLinkId: Boolean = true//是否需要校验linkid
val catch: Boolean = true//是否需要捕捉
val name: String = ""
var checked : Boolean = true
var transformer: MutableList<Transform> = mutableListOf()

View File

@@ -229,6 +229,7 @@ class ImportOMDBHelper @AssistedInject constructor(
if (!renderEntity.properties.containsKey("name")) {
renderEntity.properties["name"] = renderEntity.name;
}
//遍历判断只显示与任务Link相关的任务数据
if(currentConfig.checkLinkId){
@@ -307,6 +308,12 @@ class ImportOMDBHelper @AssistedInject constructor(
// 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity)
if(currentConfig.catch){
renderEntity.catchEnable=0
}else{
renderEntity.catchEnable=1
}
//对code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA,存在多个属性值时渲染优先级FRONTAGE>MAIN_SIDE_A CCESS
if(renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code){

View File

@@ -610,26 +610,28 @@ class ImportPreProcess {
// 获取杆状物的高程数据
val geometry = renderEntity.wkt
if (geometry != null) {
var minHeight = Double.MAX_VALUE
var maxHeight = Double.MIN_VALUE
for (coordinate in geometry.coordinates) {
if (coordinate.z < minHeight) {
minHeight = coordinate.z
}
if (coordinate.z > maxHeight) {
maxHeight = coordinate.z
}
}
for (coordinate in geometry.coordinates) {
if (coordinate.z == minHeight) {
coordinate.z = 0.0
}
if (coordinate.z == maxHeight) {
coordinate.z = 40.0
}
}
renderEntity.geometry =
WKTWriter(3).write(GeometryTools.createLineString(geometry.coordinates))
// var minHeight = Double.MAX_VALUE
// var maxHeight = Double.MIN_VALUE
// for (coordinate in geometry.coordinates) {
// if (coordinate.z < minHeight) {
// minHeight = coordinate.z
// }
// if (coordinate.z > maxHeight) {
// maxHeight = coordinate.z
// }
// }
// for (coordinate in geometry.coordinates) {
// if (coordinate.z == minHeight) {
// coordinate.z = 0.0
// }
// if (coordinate.z == maxHeight) {
// coordinate.z = 40.0
// }
// }
// renderEntity.geometry =
// WKTWriter(3).write(GeometryTools.createLineString(geometry.coordinates))
renderEntity.geometry = GeometryTools.createGeometry(GeoPoint(geometry.coordinates[0].y, geometry.coordinates[0].x)).toString()
}
}
@@ -741,4 +743,12 @@ class ImportPreProcess {
Realm.getDefaultInstance().insert(dynamicSrcReference)
}
}
/**
* 向当前renderEntity中添加动态属性
* */
fun obtainDynamicSrc(renderEntity: RenderEntity, prefix: String, suffix: String, codeName: String) {
val code = renderEntity.properties[codeName]
renderEntity.properties["src"] = "${prefix}${code}${suffix}"
}
}

View File

@@ -244,6 +244,7 @@ class RealmOperateHelper() {
point: Point,
buffer: Double = DEFAULT_BUFFER,
bufferType: BUFFER_TYPE = DEFAULT_BUFFER_TYPE,
catchAll: Boolean = true,
sort: Boolean = true
): MutableList<RenderEntity> {
val result = mutableListOf<RenderEntity>()
@@ -261,14 +262,25 @@ class RealmOperateHelper() {
val yStart = tileYSet.stream().min(Comparator.naturalOrder()).orElse(null)
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
val realm = getRealmDefaultInstance()
// 查询realm中对应tile号的数据
val realmList = getRealmTools(RenderEntity::class.java, false)
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
var realmList = mutableListOf<RenderEntity>()
if(catchAll){
// 查询realm中对应tile号的数据
realmList = getRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
}else{
// 查询realm中对应tile号的数据
realmList = getRealmTools(RenderEntity::class.java, false)
.lessThan("catchEnable", 1)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
}
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val queryResult = realmList?.stream()?.filter {
polygon.intersects(it.wkt)

View File

@@ -471,11 +471,11 @@ class MainViewModel @Inject constructor(
private suspend fun captureItem(point: GeoPoint) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val itemList = realmOperateHelper.queryElement(
point = GeometryTools.createPoint(
GeometryTools.createPoint(
point.longitude,
point.latitude
),
buffer = 2.0
buffer = 1.0, catchAll = false
)
if (itemList.size == 1) {

View File

@@ -23,6 +23,7 @@ class ItemAdapter(private var itemListener: ((Int, RenderEntity) -> Unit?)? = nu
val binding = holder.viewBinding as AdapterItemBinding
var renderEntity = data[position]
binding.root.isSelected = selectPosition == position
binding.itemIndex.text = (position+1).toString()
binding.name.text = DataCodeEnum.findTableNameByCode(renderEntity.code)
binding.root.setOnClickListener {
if (selectPosition != position) {

View File

@@ -129,7 +129,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
// 定位到指定位置
niMapController.mMapView.vtmMap.animator()
// .animateTo(GeoPoint( 40.05108004733645, 116.29187746293708 ))
.animateTo(GeoPoint( 40.480633792652746, 115.99816629572948 ))
.animateTo(GeoPoint( 40.50755634913162,115.80235967728436 ))
}
R.id.personal_center_menu_open_all_layer -> {
MapParamUtils.setDataLayerEnum(DataLayerEnum.SHOW_ALL_LAYERS)

View File

@@ -1,16 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/selector_adapter_item_select_bg"
android:padding="5dp">
android:padding="10dp">
<TextView
android:id="@+id/item_index"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/marker2"
android:maxLength="3"
android:text=""
android:layout_marginRight="@dimen/default_widget_padding"
style="@style/content_font_default_size_13sp" />
<TextView
android:id="@+id/name"
android:layout_toRightOf="@id/item_index"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="name"
android:textColor="@color/selector_black_blue_color"
android:textSize="16sp" />
</FrameLayout>
</RelativeLayout>