fix: 合并代码
This commit is contained in:
commit
f6c52e649a
@ -63,9 +63,12 @@ class RealmOperateHelper() {
|
|||||||
// 查询realm中对应tile号的数据
|
// 查询realm中对应tile号的数据
|
||||||
val realm = getRealmDefaultInstance()
|
val realm = getRealmDefaultInstance()
|
||||||
val realmList =
|
val realmList =
|
||||||
getRealmTools(RenderEntity::class.java,false).and().equalTo("table", "OMDB_RD_LINK")
|
getRealmTools(RenderEntity::class.java, false)
|
||||||
.and()
|
.equalTo("table", "OMDB_RD_LINK")
|
||||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd")
|
.greaterThanOrEqualTo("tileX", xStart)
|
||||||
|
.lessThanOrEqualTo("tileX", xEnd)
|
||||||
|
.greaterThanOrEqualTo("tileY", yStart)
|
||||||
|
.lessThanOrEqualTo("tileY", yEnd)
|
||||||
.findAll()
|
.findAll()
|
||||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||||
val dataList = realm.copyFromRealm(realmList)
|
val dataList = realm.copyFromRealm(realmList)
|
||||||
@ -125,10 +128,12 @@ class RealmOperateHelper() {
|
|||||||
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
|
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
|
||||||
// 查询realm中对应tile号的数据
|
// 查询realm中对应tile号的数据
|
||||||
val realm = getRealmDefaultInstance()
|
val realm = getRealmDefaultInstance()
|
||||||
val realmList = getRealmTools(RenderEntity::class.java, true).and()
|
val realmList = getRealmTools(RenderEntity::class.java, true)
|
||||||
.equalTo("table", table)
|
.equalTo("table", table)
|
||||||
.and()
|
.greaterThanOrEqualTo("tileX", xStart)
|
||||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd")
|
.lessThanOrEqualTo("tileX", xEnd)
|
||||||
|
.greaterThanOrEqualTo("tileY", yStart)
|
||||||
|
.lessThanOrEqualTo("tileY", yEnd)
|
||||||
.findAll()
|
.findAll()
|
||||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||||
val dataList = realm.copyFromRealm(realmList)
|
val dataList = realm.copyFromRealm(realmList)
|
||||||
@ -187,8 +192,8 @@ class RealmOperateHelper() {
|
|||||||
var link: RenderEntity? = null
|
var link: RenderEntity? = null
|
||||||
val realm = getRealmDefaultInstance()
|
val realm = getRealmDefaultInstance()
|
||||||
val realmR =
|
val realmR =
|
||||||
getRealmTools(RenderEntity::class.java, true).and().equalTo("table", "OMDB_RD_LINK")
|
getRealmTools(RenderEntity::class.java, true).equalTo("table", "OMDB_RD_LINK")
|
||||||
.and().equalTo("properties['${LinkTable.linkPid}']", linkPid).findFirst()
|
.equalTo("properties['${LinkTable.linkPid}']", linkPid).findFirst()
|
||||||
if (realmR != null) {
|
if (realmR != null) {
|
||||||
link = realm.copyFromRealm(realmR)
|
link = realm.copyFromRealm(realmR)
|
||||||
}
|
}
|
||||||
@ -202,8 +207,8 @@ class RealmOperateHelper() {
|
|||||||
suspend fun queryQcRecordBean(markId: String): QsRecordBean? {
|
suspend fun queryQcRecordBean(markId: String): QsRecordBean? {
|
||||||
var qsRecordBean: QsRecordBean? = null
|
var qsRecordBean: QsRecordBean? = null
|
||||||
val realm = getRealmDefaultInstance()
|
val realm = getRealmDefaultInstance()
|
||||||
val realmR = getRealmTools(QsRecordBean::class.java, false).and()
|
val realmR = getRealmTools(QsRecordBean::class.java, false)
|
||||||
.equalTo("table", "QsRecordBean").and().equalTo("id", markId).findFirst()
|
.equalTo("table", "QsRecordBean").equalTo("id", markId).findFirst()
|
||||||
if (realmR != null) {
|
if (realmR != null) {
|
||||||
qsRecordBean = realm.copyFromRealm(realmR)
|
qsRecordBean = realm.copyFromRealm(realmR)
|
||||||
}
|
}
|
||||||
@ -215,7 +220,7 @@ class RealmOperateHelper() {
|
|||||||
|
|
||||||
val realm = getRealmDefaultInstance()
|
val realm = getRealmDefaultInstance()
|
||||||
|
|
||||||
val realmR = getRealmTools(RenderEntity::class.java, true).and()
|
val realmR = getRealmTools(RenderEntity::class.java, true)
|
||||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).findAll()
|
.equalTo("properties['${LinkTable.linkPid}']", linkPid).findAll()
|
||||||
|
|
||||||
val dataList = realm.copyFromRealm(realmR)
|
val dataList = realm.copyFromRealm(realmR)
|
||||||
@ -257,10 +262,12 @@ class RealmOperateHelper() {
|
|||||||
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
|
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
|
||||||
val realm = getRealmDefaultInstance()
|
val realm = getRealmDefaultInstance()
|
||||||
// 查询realm中对应tile号的数据
|
// 查询realm中对应tile号的数据
|
||||||
val realmList = getRealmTools(RenderEntity::class.java, false).and()
|
val realmList = getRealmTools(RenderEntity::class.java, false)
|
||||||
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
|
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
|
||||||
.and()
|
.greaterThanOrEqualTo("tileX", xStart)
|
||||||
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd")
|
.lessThanOrEqualTo("tileX", xEnd)
|
||||||
|
.greaterThanOrEqualTo("tileY", yStart)
|
||||||
|
.lessThanOrEqualTo("tileY", yEnd)
|
||||||
.findAll()
|
.findAll()
|
||||||
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
// 将获取到的数据和查询的polygon做相交,只返回相交的数据
|
||||||
val queryResult = realmList?.stream()?.filter {
|
val queryResult = realmList?.stream()?.filter {
|
||||||
@ -287,10 +294,9 @@ class RealmOperateHelper() {
|
|||||||
suspend fun queryLinkByLinkPid(linkPid: String): MutableList<RenderEntity> {
|
suspend fun queryLinkByLinkPid(linkPid: String): MutableList<RenderEntity> {
|
||||||
val result = mutableListOf<RenderEntity>()
|
val result = mutableListOf<RenderEntity>()
|
||||||
val realm = getRealmDefaultInstance()
|
val realm = getRealmDefaultInstance()
|
||||||
val realmList = getRealmTools(RenderEntity::class.java, false).and()
|
val realmList = getRealmTools(RenderEntity::class.java, false)
|
||||||
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
|
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
|
||||||
.and()
|
.equalTo("properties['${LinkTable.linkPid}']", linkPid)
|
||||||
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and()
|
|
||||||
.findAll()
|
.findAll()
|
||||||
result.addAll(realm.copyFromRealm(realmList))
|
result.addAll(realm.copyFromRealm(realmList))
|
||||||
return result
|
return result
|
||||||
@ -383,14 +389,15 @@ class RealmOperateHelper() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getRealmDefaultInstance(): Realm {
|
fun getRealmDefaultInstance(): Realm {
|
||||||
if(isUpdate){
|
if (isUpdate) {
|
||||||
|
Log.e("jingo", "数据库更新")
|
||||||
Realm.getDefaultInstance().refresh()
|
Realm.getDefaultInstance().refresh()
|
||||||
isUpdate = false;
|
isUpdate = false;
|
||||||
}
|
}
|
||||||
return Realm.getDefaultInstance()
|
return Realm.getDefaultInstance()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateRealmDefaultInstance(){
|
fun updateRealmDefaultInstance() {
|
||||||
isUpdate = true
|
isUpdate = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -524,7 +524,7 @@ class MainActivity : BaseActivity() {
|
|||||||
/**
|
/**
|
||||||
* 开始测量
|
* 开始测量
|
||||||
*/
|
*/
|
||||||
private fun measuringToolOn() {
|
fun measuringToolOn() {
|
||||||
val root = binding.mainActivityMeasuringTool.root
|
val root = binding.mainActivityMeasuringTool.root
|
||||||
val valueView = root.findViewById<TextView>(R.id.measuring_tool_value)
|
val valueView = root.findViewById<TextView>(R.id.measuring_tool_value)
|
||||||
val unitView = root.findViewById<TextView>(R.id.measuring_tool_value_unit)
|
val unitView = root.findViewById<TextView>(R.id.measuring_tool_value_unit)
|
||||||
@ -533,6 +533,7 @@ class MainActivity : BaseActivity() {
|
|||||||
mapController.measureLayerHandler.measureValueLiveData.observe(this) {
|
mapController.measureLayerHandler.measureValueLiveData.observe(this) {
|
||||||
valueView.text = it.valueString
|
valueView.text = it.valueString
|
||||||
unitView.text = it.unit
|
unitView.text = it.unit
|
||||||
|
ClipboardUtils.copyText("${it.valueString}${it.unit}")
|
||||||
}
|
}
|
||||||
mapController.measureLayerHandler.tempMeasureValueLiveData.observe(this)
|
mapController.measureLayerHandler.tempMeasureValueLiveData.observe(this)
|
||||||
{
|
{
|
||||||
@ -672,12 +673,6 @@ class MainActivity : BaseActivity() {
|
|||||||
viewModel.onClickMenu()
|
viewModel.onClickMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 点击测速
|
|
||||||
*/
|
|
||||||
fun onClickCalcDistance() {
|
|
||||||
measuringToolOn()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 点击轨迹
|
* 点击轨迹
|
||||||
|
@ -8,7 +8,6 @@ import android.graphics.drawable.AnimationDrawable
|
|||||||
import android.graphics.drawable.BitmapDrawable
|
import android.graphics.drawable.BitmapDrawable
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.ContactsContract.Data
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
@ -45,7 +44,7 @@ import com.navinfo.omqs.http.NetworkService
|
|||||||
import com.navinfo.omqs.ui.dialog.CommonDialog
|
import com.navinfo.omqs.ui.dialog.CommonDialog
|
||||||
import com.navinfo.omqs.ui.manager.TakePhotoManager
|
import com.navinfo.omqs.ui.manager.TakePhotoManager
|
||||||
import com.navinfo.omqs.ui.other.BaseToast
|
import com.navinfo.omqs.ui.other.BaseToast
|
||||||
import com.navinfo.omqs.ui.widget.SignUtil
|
import com.navinfo.omqs.util.SignUtil
|
||||||
import com.navinfo.omqs.util.DateTimeUtil
|
import com.navinfo.omqs.util.DateTimeUtil
|
||||||
import com.navinfo.omqs.util.ShareUtil
|
import com.navinfo.omqs.util.ShareUtil
|
||||||
import com.navinfo.omqs.util.SoundMeter
|
import com.navinfo.omqs.util.SoundMeter
|
||||||
@ -53,11 +52,11 @@ import com.navinfo.omqs.util.SpeakMode
|
|||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import io.realm.RealmSet
|
import io.realm.RealmSet
|
||||||
import io.realm.kotlin.where
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
import org.locationtech.jts.geom.Geometry
|
||||||
import org.oscim.core.GeoPoint
|
import org.oscim.core.GeoPoint
|
||||||
import org.oscim.core.MapPosition
|
import org.oscim.core.MapPosition
|
||||||
import org.oscim.map.Map
|
import org.oscim.map.Map
|
||||||
@ -905,6 +904,19 @@ class MainViewModel @Inject constructor(
|
|||||||
|
|
||||||
fun showSignMoreInfo(data: RenderEntity) {
|
fun showSignMoreInfo(data: RenderEntity) {
|
||||||
liveDataSignMoreInfo.value = data
|
liveDataSignMoreInfo.value = data
|
||||||
|
if (data.wkt != null) {
|
||||||
|
mapController.markerHandle.removeMarker("moreInfo")
|
||||||
|
mapController.lineHandler.removeLine()
|
||||||
|
when (data.wkt!!.geometryType) {
|
||||||
|
Geometry.TYPENAME_POINT -> {
|
||||||
|
val geoPoint = GeometryTools.createGeoPoint(data.wkt!!.toText())
|
||||||
|
mapController.markerHandle.addMarker(geoPoint, "moreInfo")
|
||||||
|
}
|
||||||
|
Geometry.TYPENAME_LINESTRING -> {
|
||||||
|
mapController.lineHandler.showLine(data.wkt!!.toText())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendServerCommand(
|
fun sendServerCommand(
|
||||||
|
@ -13,7 +13,7 @@ import com.navinfo.omqs.databinding.AdapterSignBinding
|
|||||||
import com.navinfo.omqs.databinding.AdapterSignLaneinfoBinding
|
import com.navinfo.omqs.databinding.AdapterSignLaneinfoBinding
|
||||||
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
|
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
|
||||||
import com.navinfo.omqs.ui.other.BaseViewHolder
|
import com.navinfo.omqs.ui.other.BaseViewHolder
|
||||||
import com.navinfo.omqs.ui.widget.SignUtil
|
import com.navinfo.omqs.util.SignUtil
|
||||||
|
|
||||||
interface OnSignAdapterClickListener {
|
interface OnSignAdapterClickListener {
|
||||||
fun onItemClick(signBean: SignBean)
|
fun onItemClick(signBean: SignBean)
|
||||||
|
@ -22,6 +22,7 @@ import com.navinfo.omqs.Constant
|
|||||||
import com.navinfo.omqs.R
|
import com.navinfo.omqs.R
|
||||||
import com.navinfo.omqs.bean.SignBean
|
import com.navinfo.omqs.bean.SignBean
|
||||||
import com.navinfo.omqs.databinding.FragmentEvaluationResultBinding
|
import com.navinfo.omqs.databinding.FragmentEvaluationResultBinding
|
||||||
|
import com.navinfo.omqs.ui.activity.map.MainActivity
|
||||||
import com.navinfo.omqs.ui.dialog.FirstDialog
|
import com.navinfo.omqs.ui.dialog.FirstDialog
|
||||||
import com.navinfo.omqs.ui.fragment.BaseFragment
|
import com.navinfo.omqs.ui.fragment.BaseFragment
|
||||||
import com.navinfo.omqs.ui.other.shareViewModels
|
import com.navinfo.omqs.ui.other.shareViewModels
|
||||||
@ -101,6 +102,10 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
|||||||
mDialog.show()
|
mDialog.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//测距按钮
|
||||||
|
binding.evaluationBarMeasuring.setOnClickListener {
|
||||||
|
(activity as MainActivity).measuringToolOn()
|
||||||
|
}
|
||||||
//保存事件
|
//保存事件
|
||||||
binding.evaluationBarSave.setOnClickListener {
|
binding.evaluationBarSave.setOnClickListener {
|
||||||
viewModel.saveData()
|
viewModel.saveData()
|
||||||
@ -194,12 +199,16 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
|||||||
viewModel.liveDataToastMessage.observe(viewLifecycleOwner) {
|
viewModel.liveDataToastMessage.observe(viewLifecycleOwner) {
|
||||||
Toast.makeText(requireContext(), it, Toast.LENGTH_SHORT).show()
|
Toast.makeText(requireContext(), it, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
|
viewModel.liveDataQsRecordBean.observe(viewLifecycleOwner){
|
||||||
|
binding.evaluationId.text = it.id
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
activity?.run {
|
activity?.run {
|
||||||
findNavController(R.id.main_activity_middle_fragment).navigateUp()
|
findNavController(R.id.main_activity_middle_fragment).navigateUp()
|
||||||
|
(this as MainActivity).measuringToolOff()
|
||||||
}
|
}
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
}
|
}
|
||||||
@ -304,6 +313,7 @@ class EvaluationResultFragment : BaseFragment(), View.OnClickListener {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun takePhoto() {
|
private fun takePhoto() {
|
||||||
try {
|
try {
|
||||||
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
|
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
|
||||||
|
@ -398,6 +398,9 @@ class EvaluationResultViewModel @Inject constructor(
|
|||||||
} else if (taskBean.cause.isEmpty()) {
|
} else if (taskBean.cause.isEmpty()) {
|
||||||
liveDataToastMessage.postValue("请选择初步分析原因!")
|
liveDataToastMessage.postValue("请选择初步分析原因!")
|
||||||
return@launch
|
return@launch
|
||||||
|
} else if (taskBean.linkId.isEmpty()) {
|
||||||
|
liveDataToastMessage.postValue("没有绑定到任何link,请选择")
|
||||||
|
return@launch
|
||||||
}
|
}
|
||||||
|
|
||||||
val realm = Realm.getDefaultInstance()
|
val realm = Realm.getDefaultInstance()
|
||||||
|
@ -10,6 +10,9 @@ import com.navinfo.omqs.ui.other.BaseViewHolder
|
|||||||
|
|
||||||
class ItemAdapter(private var itemListener: ((Int, RenderEntity) -> Unit?)? = null) :
|
class ItemAdapter(private var itemListener: ((Int, RenderEntity) -> Unit?)? = null) :
|
||||||
BaseRecyclerViewAdapter<RenderEntity>() {
|
BaseRecyclerViewAdapter<RenderEntity>() {
|
||||||
|
|
||||||
|
var selectPosition = -1
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder {
|
||||||
val viewBinding =
|
val viewBinding =
|
||||||
AdapterItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
AdapterItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||||
@ -19,9 +22,15 @@ class ItemAdapter(private var itemListener: ((Int, RenderEntity) -> Unit?)? = nu
|
|||||||
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: BaseViewHolder, position: Int) {
|
||||||
val binding = holder.viewBinding as AdapterItemBinding
|
val binding = holder.viewBinding as AdapterItemBinding
|
||||||
var renderEntity = data[position]
|
var renderEntity = data[position]
|
||||||
|
binding.root.isSelected = selectPosition == position
|
||||||
binding.name.text = DataCodeEnum.findTableNameByCode(renderEntity.code)
|
binding.name.text = DataCodeEnum.findTableNameByCode(renderEntity.code)
|
||||||
binding.root.setOnClickListener {
|
binding.root.setOnClickListener {
|
||||||
|
if (selectPosition != position) {
|
||||||
|
notifyItemChanged(selectPosition)
|
||||||
|
selectPosition = position
|
||||||
|
notifyItemChanged(position)
|
||||||
|
}
|
||||||
|
|
||||||
if (itemListener != null) {
|
if (itemListener != null) {
|
||||||
itemListener!!.invoke(position, renderEntity)
|
itemListener!!.invoke(position, renderEntity)
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ import com.navinfo.omqs.bean.SignBean
|
|||||||
import com.navinfo.omqs.databinding.FragmentSignInfoBinding
|
import com.navinfo.omqs.databinding.FragmentSignInfoBinding
|
||||||
import com.navinfo.omqs.ui.activity.map.MainViewModel
|
import com.navinfo.omqs.ui.activity.map.MainViewModel
|
||||||
import com.navinfo.omqs.ui.fragment.BaseFragment
|
import com.navinfo.omqs.ui.fragment.BaseFragment
|
||||||
import com.navinfo.omqs.ui.widget.SignUtil
|
import com.navinfo.omqs.util.SignUtil
|
||||||
|
|
||||||
|
|
||||||
class SignMoreInfoFragment : BaseFragment() {
|
class SignMoreInfoFragment : BaseFragment() {
|
||||||
@ -38,15 +38,22 @@ class SignMoreInfoFragment : BaseFragment() {
|
|||||||
binding.signInfoRecyclerview.layoutManager = layoutManager
|
binding.signInfoRecyclerview.layoutManager = layoutManager
|
||||||
viewModel.liveDataSignMoreInfo.observe(viewLifecycleOwner) {
|
viewModel.liveDataSignMoreInfo.observe(viewLifecycleOwner) {
|
||||||
binding.signInfoTitle.text = it.name
|
binding.signInfoTitle.text = it.name
|
||||||
val drawable = resources.getDrawable(R.drawable.icon_main_moreinfo_text_left, null);
|
val drawableLeft = resources.getDrawable(R.drawable.icon_main_moreinfo_text_left, null);
|
||||||
drawable.setBounds(
|
val drawableRight = resources.getDrawable(R.drawable.baseline_edit_note_48, null);
|
||||||
|
drawableLeft.setBounds(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
drawable.minimumWidth,
|
drawableLeft.minimumWidth,
|
||||||
drawable.minimumHeight
|
drawableLeft.minimumHeight
|
||||||
);//必须设置图片大小,否则不显示
|
)//必须设置图片大小,否则不显示
|
||||||
|
drawableRight.setBounds(
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
drawableRight.minimumWidth,
|
||||||
|
drawableRight.minimumHeight
|
||||||
|
)
|
||||||
binding.signInfoTitle.setCompoundDrawables(
|
binding.signInfoTitle.setCompoundDrawables(
|
||||||
drawable, null, null, null
|
drawableLeft, null, drawableRight, null
|
||||||
)
|
)
|
||||||
|
|
||||||
when (it.code) {
|
when (it.code) {
|
||||||
@ -62,7 +69,7 @@ class SignMoreInfoFragment : BaseFragment() {
|
|||||||
binding.signInfoRecyclerview.adapter = adapter
|
binding.signInfoRecyclerview.adapter = adapter
|
||||||
adapter.refreshData(SignUtil.getLaneBoundaryTypeInfo(it))
|
adapter.refreshData(SignUtil.getLaneBoundaryTypeInfo(it))
|
||||||
}
|
}
|
||||||
DataCodeEnum.OMDB_INTERSECTION.code->{
|
DataCodeEnum.OMDB_INTERSECTION.code -> {
|
||||||
val adapter = LaneBoundaryAdapter()
|
val adapter = LaneBoundaryAdapter()
|
||||||
binding.signInfoRecyclerview.adapter = adapter
|
binding.signInfoRecyclerview.adapter = adapter
|
||||||
adapter.refreshData(SignUtil.getIntersectionInfo(it))
|
adapter.refreshData(SignUtil.getIntersectionInfo(it))
|
||||||
@ -77,7 +84,7 @@ class SignMoreInfoFragment : BaseFragment() {
|
|||||||
drawable.minimumHeight
|
drawable.minimumHeight
|
||||||
);//必须设置图片大小,否则不显示
|
);//必须设置图片大小,否则不显示
|
||||||
binding.signInfoTitle.setCompoundDrawables(
|
binding.signInfoTitle.setCompoundDrawables(
|
||||||
drawable, null, null, null
|
drawable, null, drawableRight, null
|
||||||
)
|
)
|
||||||
val adapter = TwoItemAdapter()
|
val adapter = TwoItemAdapter()
|
||||||
binding.signInfoRecyclerview.adapter = adapter
|
binding.signInfoRecyclerview.adapter = adapter
|
||||||
|
@ -2,6 +2,7 @@ package com.navinfo.omqs.ui.fragment.tasklist
|
|||||||
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import com.navinfo.collect.library.data.entity.HadLinkDvoBean
|
import com.navinfo.collect.library.data.entity.HadLinkDvoBean
|
||||||
import com.navinfo.omqs.R
|
import com.navinfo.omqs.R
|
||||||
@ -13,6 +14,7 @@ import com.navinfo.omqs.ui.other.BaseViewHolder
|
|||||||
interface TaskAdapterCallback {
|
interface TaskAdapterCallback {
|
||||||
fun itemOnClick(bean: HadLinkDvoBean)
|
fun itemOnClick(bean: HadLinkDvoBean)
|
||||||
fun editOnClick(position: Int, bean: HadLinkDvoBean)
|
fun editOnClick(position: Int, bean: HadLinkDvoBean)
|
||||||
|
fun scrollPosition(position: Int)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -38,10 +40,12 @@ class TaskAdapter(
|
|||||||
val binding: AdapterTaskBinding =
|
val binding: AdapterTaskBinding =
|
||||||
holder.viewBinding as AdapterTaskBinding
|
holder.viewBinding as AdapterTaskBinding
|
||||||
val bean = data[position]
|
val bean = data[position]
|
||||||
if(bean.linkStatus==1){
|
if (bean.linkStatus == 1) {
|
||||||
binding.taskHead.background = binding.root.context.getDrawable(R.drawable.selector_task_head)
|
binding.taskHead.background =
|
||||||
}else{
|
binding.root.context.getDrawable(R.drawable.selector_task_head)
|
||||||
binding.taskHead.background = binding.root.context.getDrawable(R.drawable.selector_task_head_add_link)
|
} else {
|
||||||
|
binding.taskHead.background =
|
||||||
|
binding.root.context.getDrawable(R.drawable.selector_task_head_add_link)
|
||||||
}
|
}
|
||||||
binding.taskLinkPid.text = "PID:${bean.linkPid}"
|
binding.taskLinkPid.text = "PID:${bean.linkPid}"
|
||||||
binding.taskMesh.text = "mesh:${bean.mesh}"
|
binding.taskMesh.text = "mesh:${bean.mesh}"
|
||||||
@ -58,7 +62,11 @@ class TaskAdapter(
|
|||||||
callback.itemOnClick(bean)
|
callback.itemOnClick(bean)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binding.taskEdit.isSelected = bean.reason != ""
|
if (bean.reason == "") {
|
||||||
|
binding.taskBadge.visibility = View.GONE
|
||||||
|
} else {
|
||||||
|
binding.taskBadge.visibility = View.VISIBLE
|
||||||
|
}
|
||||||
binding.taskEdit.setOnClickListener {
|
binding.taskEdit.setOnClickListener {
|
||||||
callback.editOnClick(position, bean)
|
callback.editOnClick(position, bean)
|
||||||
}
|
}
|
||||||
@ -68,6 +76,21 @@ class TaskAdapter(
|
|||||||
fun resetSelect() {
|
fun resetSelect() {
|
||||||
selectPosition = -1
|
selectPosition = -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setSelectTag(tag: String) {
|
||||||
|
for (i in data.indices) {
|
||||||
|
if (data[i].linkPid == tag) {
|
||||||
|
if (selectPosition > -1)
|
||||||
|
notifyItemChanged(selectPosition)
|
||||||
|
selectPosition = i
|
||||||
|
notifyItemChanged(i)
|
||||||
|
if (callback != null) {
|
||||||
|
callback.scrollPosition(i)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,6 +48,10 @@ class TaskFragment : BaseFragment() {
|
|||||||
override fun editOnClick(position: Int, bean: HadLinkDvoBean) {
|
override fun editOnClick(position: Int, bean: HadLinkDvoBean) {
|
||||||
showLinkEditDialog(position, bean)
|
showLinkEditDialog(position, bean)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun scrollPosition(position: Int) {
|
||||||
|
binding.taskRecyclerview.scrollToPosition(position)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,6 +124,9 @@ class TaskFragment : BaseFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
viewModel.liveDataSelectLink.observe(viewLifecycleOwner){
|
||||||
|
adapter.setSelectTag(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import android.content.SharedPreferences
|
|||||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener
|
import android.content.SharedPreferences.OnSharedPreferenceChangeListener
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
@ -66,6 +67,11 @@ class TaskViewModel @Inject constructor(
|
|||||||
*/
|
*/
|
||||||
val liveDataToastMessage = MutableLiveData<String>()
|
val liveDataToastMessage = MutableLiveData<String>()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 点击地图选中的link
|
||||||
|
*/
|
||||||
|
val liveDataSelectLink = MutableLiveData<String>()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当前选中的任务
|
* 当前选中的任务
|
||||||
*/
|
*/
|
||||||
@ -85,6 +91,79 @@ class TaskViewModel @Inject constructor(
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
sharedPreferences.registerOnSharedPreferenceChangeListener(this)
|
sharedPreferences.registerOnSharedPreferenceChangeListener(this)
|
||||||
|
mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener {
|
||||||
|
@RequiresApi(Build.VERSION_CODES.N)
|
||||||
|
override fun onMapClick(tag: String, point: GeoPoint) {
|
||||||
|
if (tag == TAG) {
|
||||||
|
if (liveDataSelectNewLink.value == true) {
|
||||||
|
viewModelScope.launch(Dispatchers.Default) {
|
||||||
|
if (currentSelectTaskBean == null) {
|
||||||
|
liveDataToastMessage.postValue("还没有开启任何任务")
|
||||||
|
} else {
|
||||||
|
val links = realmOperateHelper.queryLink(
|
||||||
|
point = point,
|
||||||
|
)
|
||||||
|
if (links.isNotEmpty()) {
|
||||||
|
val l = links[0]
|
||||||
|
for (link in currentSelectTaskBean!!.hadLinkDvoList) {
|
||||||
|
if (link.linkPid == l.properties["linkPid"]) {
|
||||||
|
return@launch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val hadLinkDvoBean = HadLinkDvoBean(
|
||||||
|
taskId = currentSelectTaskBean!!.id,
|
||||||
|
linkPid = l.properties["linkPid"]!!,
|
||||||
|
geometry = l.geometry,
|
||||||
|
linkStatus = 2
|
||||||
|
)
|
||||||
|
currentSelectTaskBean!!.hadLinkDvoList.add(
|
||||||
|
hadLinkDvoBean
|
||||||
|
)
|
||||||
|
val realm = Realm.getDefaultInstance()
|
||||||
|
realm.executeTransaction { r ->
|
||||||
|
r.copyToRealmOrUpdate(hadLinkDvoBean)
|
||||||
|
r.copyToRealmOrUpdate(currentSelectTaskBean!!)
|
||||||
|
}
|
||||||
|
//根据Link数据查询对应数据上要素,对要素进行显示重置
|
||||||
|
l.properties["linkPid"]?.let {
|
||||||
|
realmOperateHelper.queryLinkToMutableRenderEntityList(it)
|
||||||
|
?.forEach { renderEntity ->
|
||||||
|
if (renderEntity.enable != 1) {
|
||||||
|
renderEntity.enable = 1
|
||||||
|
realm.executeTransaction { r ->
|
||||||
|
r.copyToRealmOrUpdate(renderEntity)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
|
||||||
|
mapController.lineHandler.addTaskLink(hadLinkDvoBean)
|
||||||
|
mapController.layerManagerHandler.updateOMDBVectorTileLayer()
|
||||||
|
mapController.mMapView.vtmMap.updateMap(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
|
val links = realmOperateHelper.queryLink(
|
||||||
|
point = point,
|
||||||
|
)
|
||||||
|
if (links.isNotEmpty()) {
|
||||||
|
val l = links[0]
|
||||||
|
for (link in currentSelectTaskBean!!.hadLinkDvoList) {
|
||||||
|
if (link.linkPid == l.properties["linkPid"]) {
|
||||||
|
liveDataSelectLink.postValue(link.linkPid)
|
||||||
|
mapController.lineHandler.showLine(link.geometry)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -106,10 +185,9 @@ class TaskViewModel @Inject constructor(
|
|||||||
val nowTime: Long = DateTimeUtil.getNowDate().time
|
val nowTime: Long = DateTimeUtil.getNowDate().time
|
||||||
val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L
|
val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L
|
||||||
val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE
|
val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE
|
||||||
val objects =
|
val objects = realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or()
|
||||||
realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or()
|
.between("operationTime", beginNowTime, nowTime).equalTo("syncStatus", syncUpload)
|
||||||
.between("operationTime", beginNowTime, nowTime)
|
.findAll().sort("id")
|
||||||
.equalTo("syncStatus", syncUpload).findAll().sort("id")
|
|
||||||
val taskList = realm.copyFromRealm(objects)
|
val taskList = realm.copyFromRealm(objects)
|
||||||
for (item in taskList) {
|
for (item in taskList) {
|
||||||
FileManager.checkOMDBFileInfo(item)
|
FileManager.checkOMDBFileInfo(item)
|
||||||
@ -187,8 +265,7 @@ class TaskViewModel @Inject constructor(
|
|||||||
//重新加载轨迹
|
//重新加载轨迹
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
val list: List<NiLocation>? = TraceDataBase.getDatabase(
|
val list: List<NiLocation>? = TraceDataBase.getDatabase(
|
||||||
mapController.mMapView.context,
|
mapController.mMapView.context, Constant.USER_DATA_PATH
|
||||||
Constant.USER_DATA_PATH
|
|
||||||
).niLocationDao.findToTaskIdAll(taskBean.id.toString())
|
).niLocationDao.findToTaskIdAll(taskBean.id.toString())
|
||||||
list!!.forEach {
|
list!!.forEach {
|
||||||
mapController.markerHandle.addNiLocationMarkerItem(it)
|
mapController.markerHandle.addNiLocationMarkerItem(it)
|
||||||
@ -216,6 +293,7 @@ class TaskViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onCleared() {
|
override fun onCleared() {
|
||||||
|
mapController.mMapView.removeOnNIMapClickListener(TAG)
|
||||||
mapController.lineHandler.removeLine()
|
mapController.lineHandler.removeLine()
|
||||||
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
|
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
|
||||||
super.onCleared()
|
super.onCleared()
|
||||||
@ -245,18 +323,12 @@ class TaskViewModel @Inject constructor(
|
|||||||
* 筛选任务列表
|
* 筛选任务列表
|
||||||
*/
|
*/
|
||||||
fun filterTaskList(key: String) {
|
fun filterTaskList(key: String) {
|
||||||
if (filterTaskListJob != null)
|
if (filterTaskListJob != null) filterTaskListJob!!.cancel()
|
||||||
filterTaskListJob!!.cancel()
|
|
||||||
filterTaskListJob = viewModelScope.launch(Dispatchers.IO) {
|
filterTaskListJob = viewModelScope.launch(Dispatchers.IO) {
|
||||||
delay(500)
|
delay(500)
|
||||||
val realm = Realm.getDefaultInstance()
|
val realm = Realm.getDefaultInstance()
|
||||||
val list = realm.where(TaskBean::class.java)
|
val list = realm.where(TaskBean::class.java).contains("evaluationTaskName", key).or()
|
||||||
.contains("evaluationTaskName", key)
|
.contains("dataVersion", key).or().contains("cityName", key).findAll()
|
||||||
.or()
|
|
||||||
.contains("dataVersion", key)
|
|
||||||
.or()
|
|
||||||
.contains("cityName", key)
|
|
||||||
.findAll()
|
|
||||||
liveDataTaskList.postValue(realm.copyFromRealm(list))
|
liveDataTaskList.postValue(realm.copyFromRealm(list))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -265,17 +337,14 @@ class TaskViewModel @Inject constructor(
|
|||||||
* 筛选link
|
* 筛选link
|
||||||
*/
|
*/
|
||||||
fun filterTask(pidKey: String) {
|
fun filterTask(pidKey: String) {
|
||||||
if (currentSelectTaskBean == null)
|
if (currentSelectTaskBean == null) return
|
||||||
return
|
|
||||||
|
|
||||||
if (filterTaskJob != null)
|
if (filterTaskJob != null) filterTaskJob!!.cancel()
|
||||||
filterTaskJob!!.cancel()
|
|
||||||
filterTaskJob = viewModelScope.launch(Dispatchers.Default) {
|
filterTaskJob = viewModelScope.launch(Dispatchers.Default) {
|
||||||
delay(500)
|
delay(500)
|
||||||
val list = mutableListOf<HadLinkDvoBean>()
|
val list = mutableListOf<HadLinkDvoBean>()
|
||||||
for (item in currentSelectTaskBean!!.hadLinkDvoList) {
|
for (item in currentSelectTaskBean!!.hadLinkDvoList) {
|
||||||
if (item.linkPid.contains(pidKey))
|
if (item.linkPid.contains(pidKey)) list.add(item)
|
||||||
list.add(item)
|
|
||||||
}
|
}
|
||||||
liveDataTaskLinks.postValue(list)
|
liveDataTaskLinks.postValue(list)
|
||||||
}
|
}
|
||||||
@ -295,8 +364,8 @@ class TaskViewModel @Inject constructor(
|
|||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
val realm = Realm.getDefaultInstance()
|
val realm = Realm.getDefaultInstance()
|
||||||
realm.executeTransaction {
|
realm.executeTransaction {
|
||||||
val objects = it.where(TaskBean::class.java)
|
val objects =
|
||||||
.equalTo("id", taskBean.id).findFirst()
|
it.where(TaskBean::class.java).equalTo("id", taskBean.id).findFirst()
|
||||||
objects?.deleteFromRealm()
|
objects?.deleteFromRealm()
|
||||||
}
|
}
|
||||||
//遍历删除对应的数据
|
//遍历删除对应的数据
|
||||||
@ -317,8 +386,8 @@ class TaskViewModel @Inject constructor(
|
|||||||
val nowTime: Long = DateTimeUtil.getNowDate().time
|
val nowTime: Long = DateTimeUtil.getNowDate().time
|
||||||
val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L
|
val beginNowTime: Long = nowTime - 90 * 3600 * 24 * 1000L
|
||||||
val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE
|
val syncUpload: Int = FileManager.Companion.FileUploadStatus.DONE
|
||||||
val objects = realm.where(TaskBean::class.java)
|
val objects =
|
||||||
.notEqualTo("syncStatus", syncUpload).or()
|
realm.where(TaskBean::class.java).notEqualTo("syncStatus", syncUpload).or()
|
||||||
.between("operationTime", beginNowTime, nowTime)
|
.between("operationTime", beginNowTime, nowTime)
|
||||||
.equalTo("syncStatus", syncUpload).findAll()
|
.equalTo("syncStatus", syncUpload).findAll()
|
||||||
val taskList = realm.copyFromRealm(objects)
|
val taskList = realm.copyFromRealm(objects)
|
||||||
@ -342,9 +411,9 @@ class TaskViewModel @Inject constructor(
|
|||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
val realm = Realm.getDefaultInstance()
|
val realm = Realm.getDefaultInstance()
|
||||||
taskBean.hadLinkDvoList.forEach { hadLinkDvoBean ->
|
taskBean.hadLinkDvoList.forEach { hadLinkDvoBean ->
|
||||||
val objects = realm.where(QsRecordBean::class.java)
|
val objects =
|
||||||
.equalTo("linkId", hadLinkDvoBean.linkPid).and()
|
realm.where(QsRecordBean::class.java).equalTo("linkId", hadLinkDvoBean.linkPid)
|
||||||
.equalTo("taskId", hadLinkDvoBean.taskId).findAll()
|
.and().equalTo("taskId", hadLinkDvoBean.taskId).findAll()
|
||||||
val map: MutableMap<TaskBean, Boolean> = HashMap<TaskBean, Boolean>()
|
val map: MutableMap<TaskBean, Boolean> = HashMap<TaskBean, Boolean>()
|
||||||
if (objects.isEmpty() && hadLinkDvoBean.reason.isEmpty()) {
|
if (objects.isEmpty() && hadLinkDvoBean.reason.isEmpty()) {
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
@ -388,68 +457,67 @@ class TaskViewModel @Inject constructor(
|
|||||||
*/
|
*/
|
||||||
fun setSelectLink(selected: Boolean) {
|
fun setSelectLink(selected: Boolean) {
|
||||||
liveDataSelectNewLink.value = selected
|
liveDataSelectNewLink.value = selected
|
||||||
//开始捕捉
|
// //开始捕捉
|
||||||
if (selected) {
|
// if (selected) {
|
||||||
mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener {
|
// mapController.mMapView.addOnNIMapClickListener(TAG, object : OnGeoPointClickListener {
|
||||||
override fun onMapClick(tag: String, point: GeoPoint) {
|
// override fun onMapClick(tag: String, point: GeoPoint) {
|
||||||
if (tag == TAG) {
|
// if (tag == TAG) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
viewModelScope.launch(Dispatchers.Default) {
|
// viewModelScope.launch(Dispatchers.Default) {
|
||||||
if (currentSelectTaskBean == null) {
|
// if (currentSelectTaskBean == null) {
|
||||||
liveDataToastMessage.postValue("还没有开启任何任务")
|
// liveDataToastMessage.postValue("还没有开启任何任务")
|
||||||
} else {
|
// } else {
|
||||||
val links = realmOperateHelper.queryLink(
|
// val links = realmOperateHelper.queryLink(
|
||||||
point = point,
|
// point = point,
|
||||||
)
|
// )
|
||||||
if (links.isNotEmpty()) {
|
// if (links.isNotEmpty()) {
|
||||||
val l = links[0]
|
// val l = links[0]
|
||||||
for (link in currentSelectTaskBean!!.hadLinkDvoList) {
|
// for (link in currentSelectTaskBean!!.hadLinkDvoList) {
|
||||||
if (link.linkPid == l.properties["linkPid"]) {
|
// if (link.linkPid == l.properties["linkPid"]) {
|
||||||
return@launch
|
// return@launch
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
val hadLinkDvoBean = HadLinkDvoBean(
|
// val hadLinkDvoBean = HadLinkDvoBean(
|
||||||
taskId = currentSelectTaskBean!!.id,
|
// taskId = currentSelectTaskBean!!.id,
|
||||||
linkPid = l.properties["linkPid"]!!,
|
// linkPid = l.properties["linkPid"]!!,
|
||||||
geometry = l.geometry,
|
// geometry = l.geometry,
|
||||||
linkStatus = 2
|
// linkStatus = 2
|
||||||
)
|
// )
|
||||||
currentSelectTaskBean!!.hadLinkDvoList.add(
|
// currentSelectTaskBean!!.hadLinkDvoList.add(
|
||||||
hadLinkDvoBean
|
// hadLinkDvoBean
|
||||||
)
|
// )
|
||||||
val realm = Realm.getDefaultInstance()
|
// val realm = Realm.getDefaultInstance()
|
||||||
realm.executeTransaction { r ->
|
// realm.executeTransaction { r ->
|
||||||
r.copyToRealmOrUpdate(hadLinkDvoBean)
|
// r.copyToRealmOrUpdate(hadLinkDvoBean)
|
||||||
r.copyToRealmOrUpdate(currentSelectTaskBean!!)
|
// r.copyToRealmOrUpdate(currentSelectTaskBean!!)
|
||||||
}
|
// }
|
||||||
//根据Link数据查询对应数据上要素,对要素进行显示重置
|
// //根据Link数据查询对应数据上要素,对要素进行显示重置
|
||||||
l.properties["linkPid"]?.let {
|
// l.properties["linkPid"]?.let {
|
||||||
realmOperateHelper.queryLinkToMutableRenderEntityList(it)
|
// realmOperateHelper.queryLinkToMutableRenderEntityList(it)
|
||||||
?.forEach { renderEntity ->
|
// ?.forEach { renderEntity ->
|
||||||
if(renderEntity.enable!=1){
|
// if (renderEntity.enable != 1) {
|
||||||
renderEntity.enable = 1
|
// renderEntity.enable = 1
|
||||||
realm.executeTransaction { r ->
|
// realm.executeTransaction { r ->
|
||||||
r.copyToRealmOrUpdate(renderEntity)
|
// r.copyToRealmOrUpdate(renderEntity)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
|
// liveDataTaskLinks.postValue(currentSelectTaskBean!!.hadLinkDvoList)
|
||||||
mapController.lineHandler.addTaskLink(hadLinkDvoBean)
|
// mapController.lineHandler.addTaskLink(hadLinkDvoBean)
|
||||||
mapController.layerManagerHandler.updateOMDBVectorTileLayer()
|
// mapController.layerManagerHandler.updateOMDBVectorTileLayer()
|
||||||
mapController.mMapView.vtmMap.updateMap(true)
|
// mapController.mMapView.vtmMap.updateMap(true)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
// })
|
||||||
})
|
// } else {
|
||||||
} else {
|
// mapController.mMapView.removeOnNIMapClickListener(TAG)
|
||||||
mapController.mMapView.removeOnNIMapClickListener(TAG)
|
// mapController.lineHandler.removeLine()
|
||||||
mapController.lineHandler.removeLine()
|
// }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -480,10 +548,10 @@ class TaskViewModel @Inject constructor(
|
|||||||
val realm = Realm.getDefaultInstance()
|
val realm = Realm.getDefaultInstance()
|
||||||
|
|
||||||
//重置数据为隐藏
|
//重置数据为隐藏
|
||||||
if(hadLinkDvoBean.linkStatus==2){
|
if (hadLinkDvoBean.linkStatus == 2) {
|
||||||
realmOperateHelper.queryLinkToMutableRenderEntityList(hadLinkDvoBean.linkPid)
|
realmOperateHelper.queryLinkToMutableRenderEntityList(hadLinkDvoBean.linkPid)
|
||||||
?.forEach { renderEntity ->
|
?.forEach { renderEntity ->
|
||||||
if(renderEntity.enable==1){
|
if (renderEntity.enable == 1) {
|
||||||
renderEntity.enable = 0
|
renderEntity.enable = 0
|
||||||
realm.executeTransaction { r ->
|
realm.executeTransaction { r ->
|
||||||
r.copyToRealmOrUpdate(renderEntity)
|
r.copyToRealmOrUpdate(renderEntity)
|
||||||
@ -505,9 +573,8 @@ class TaskViewModel @Inject constructor(
|
|||||||
.equalTo("linkPid", hadLinkDvoBean.linkPid).findFirst()
|
.equalTo("linkPid", hadLinkDvoBean.linkPid).findFirst()
|
||||||
?.deleteFromRealm()
|
?.deleteFromRealm()
|
||||||
val markers = realm.where(QsRecordBean::class.java)
|
val markers = realm.where(QsRecordBean::class.java)
|
||||||
.equalTo("linkId", hadLinkDvoBean.linkPid)
|
.equalTo("linkId", hadLinkDvoBean.linkPid).and()
|
||||||
.and().equalTo("taskId", hadLinkDvoBean.taskId)
|
.equalTo("taskId", hadLinkDvoBean.taskId).findAll()
|
||||||
.findAll()
|
|
||||||
if (markers != null) {
|
if (markers != null) {
|
||||||
for (marker in markers) {
|
for (marker in markers) {
|
||||||
mapController.markerHandle.removeQsRecordMark(marker)
|
mapController.markerHandle.removeQsRecordMark(marker)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.navinfo.omqs.ui.widget
|
package com.navinfo.omqs.util
|
||||||
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import com.navinfo.collect.library.data.entity.RenderEntity
|
import com.navinfo.collect.library.data.entity.RenderEntity
|
||||||
@ -23,27 +23,65 @@ class SignUtil {
|
|||||||
fun getSignIconText(data: RenderEntity): String {
|
fun getSignIconText(data: RenderEntity): String {
|
||||||
return when (data.code) {
|
return when (data.code) {
|
||||||
//道路功能等级
|
//道路功能等级
|
||||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> getLinkFunctionClassText(data)
|
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> {
|
||||||
|
"FC${data.properties["functionClass"]}"
|
||||||
|
}
|
||||||
//道路种别
|
//道路种别
|
||||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> getKindText(data)
|
DataCodeEnum.OMDB_RD_LINK_KIND.code -> {
|
||||||
|
"${data.properties["kind"]}"
|
||||||
|
}
|
||||||
//道路方向
|
//道路方向
|
||||||
DataCodeEnum.OMDB_LINK_DIRECT.code -> getRoadDirectionText(data)
|
DataCodeEnum.OMDB_LINK_DIRECT.code -> {
|
||||||
|
when (data.properties["direct"]) {
|
||||||
|
"0" -> return "不应用"
|
||||||
|
"1" -> return "双"
|
||||||
|
"2" -> return "顺"
|
||||||
|
"3" -> return "逆"
|
||||||
|
else -> ""
|
||||||
|
}
|
||||||
|
}
|
||||||
//常规线限速
|
//常规线限速
|
||||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> getLineSpeedLimitText(data)
|
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
|
||||||
|
"${data.properties["maxSpeed"]}"
|
||||||
|
}
|
||||||
//全封闭
|
//全封闭
|
||||||
DataCodeEnum.OMDB_CON_ACCESS.code -> getConAccessText(data)
|
DataCodeEnum.OMDB_CON_ACCESS.code -> {
|
||||||
|
if (data.properties["conAccess"] === "1") "全封闭" else ""
|
||||||
|
}
|
||||||
//匝道
|
//匝道
|
||||||
DataCodeEnum.OMDB_RAMP.code -> getRampText(data)
|
DataCodeEnum.OMDB_RAMP.code -> {
|
||||||
|
when (data.properties["formOfWay"]) {
|
||||||
|
"93" -> "普通匝"
|
||||||
|
"98" -> "高入匝"
|
||||||
|
"99" -> "高出匝"
|
||||||
|
"100" -> "高连匝"
|
||||||
|
"102" -> "直入匝"
|
||||||
|
"103" -> "直出匝"
|
||||||
|
"104" -> "出入匝"
|
||||||
|
else -> ""
|
||||||
|
}
|
||||||
|
}
|
||||||
//车道数
|
//车道数
|
||||||
DataCodeEnum.OMDB_LANE_NUM.code -> getLaneNumText(data)
|
DataCodeEnum.OMDB_LANE_NUM.code -> {
|
||||||
|
"${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}"
|
||||||
|
}
|
||||||
//常规点限速,条件点限速
|
//常规点限速,条件点限速
|
||||||
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(
|
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(
|
||||||
data
|
data
|
||||||
)
|
)
|
||||||
//上下线分离
|
//上下线分离
|
||||||
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> getMultiDigitized(data)
|
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> {
|
||||||
|
if (data.properties["multiDigitized"] == "1") "上下线" else " "
|
||||||
|
}
|
||||||
//桥
|
//桥
|
||||||
DataCodeEnum.OMDB_BRIDGE.code -> getBridgeType(data)
|
DataCodeEnum.OMDB_BRIDGE.code -> {
|
||||||
|
when (data.properties["bridgeType"]) {
|
||||||
|
"1" -> return "固定桥"
|
||||||
|
"2" -> return "可移桥"
|
||||||
|
"3" -> return "跨线桥"
|
||||||
|
else -> ""
|
||||||
|
}
|
||||||
|
}
|
||||||
//隧道
|
//隧道
|
||||||
DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
|
DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
|
||||||
//环岛
|
//环岛
|
||||||
@ -73,101 +111,12 @@ class SignUtil {
|
|||||||
DataCodeEnum.OMDB_LINK_FORM2_12.code -> "测试路"
|
DataCodeEnum.OMDB_LINK_FORM2_12.code -> "测试路"
|
||||||
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "驾考路"
|
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "驾考路"
|
||||||
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
|
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
|
||||||
|
DataCodeEnum.OMDB_LINK_CONSTRUCTION.code -> "道路施工"
|
||||||
|
DataCodeEnum.OMDB_LANE_CONSTRUCTION.code -> "车道施工"
|
||||||
else -> ""
|
else -> ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取桥的类型值
|
|
||||||
*/
|
|
||||||
private fun getBridgeType(data: RenderEntity): String {
|
|
||||||
val bridgeType = data.properties["bridgeType"]
|
|
||||||
try {
|
|
||||||
when (bridgeType?.toInt()) {
|
|
||||||
1 -> return "固定桥"
|
|
||||||
2 -> return "可移桥"
|
|
||||||
3 -> return "跨线桥"
|
|
||||||
}
|
|
||||||
} catch (e: Throwable) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 常规线限速值
|
|
||||||
*/
|
|
||||||
private fun getLineSpeedLimitText(data: RenderEntity): String {
|
|
||||||
return "${data.properties["maxSpeed"]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取全封闭值
|
|
||||||
*/
|
|
||||||
private fun getConAccessText(data: RenderEntity): String {
|
|
||||||
val conAccess = data.properties["conAccess"]
|
|
||||||
try {
|
|
||||||
if (conAccess?.toInt() == 1)
|
|
||||||
return "全封闭"
|
|
||||||
} catch (e: Throwable) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取匝道值
|
|
||||||
*/
|
|
||||||
private fun getRampText(data: RenderEntity): String {
|
|
||||||
try {
|
|
||||||
val ramp = data.properties["formOfWay"]
|
|
||||||
return when (ramp?.toInt()) {
|
|
||||||
93 -> "普通匝"
|
|
||||||
98 -> "高入匝"
|
|
||||||
99 -> "高出匝"
|
|
||||||
100 -> "高连匝"
|
|
||||||
102 -> "直入匝"
|
|
||||||
103 -> "直出匝"
|
|
||||||
104 -> "出入匝"
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e: Throwable) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*获取道路功能等级文字
|
|
||||||
*/
|
|
||||||
private fun getLinkFunctionClassText(data: RenderEntity): String {
|
|
||||||
return "FC${data.properties["functionClass"]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取道路方向文字
|
|
||||||
*/
|
|
||||||
private fun getRoadDirectionText(data: RenderEntity): String {
|
|
||||||
val direct = data.properties["direct"]
|
|
||||||
when (direct?.toInt()) {
|
|
||||||
0 -> return "不应用"
|
|
||||||
1 -> return "双"
|
|
||||||
2 -> return "顺"
|
|
||||||
3 -> return "逆"
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取车道数展示文字
|
|
||||||
*/
|
|
||||||
private fun getLaneNumText(data: RenderEntity): String {
|
|
||||||
return "${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取要素名称
|
* 获取要素名称
|
||||||
*/
|
*/
|
||||||
@ -235,15 +184,193 @@ class SignUtil {
|
|||||||
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "道路形态"
|
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "道路形态"
|
||||||
|
|
||||||
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
|
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
|
||||||
|
DataCodeEnum.OMDB_LINK_CONSTRUCTION.code -> "道路施工"
|
||||||
|
DataCodeEnum.OMDB_LANE_CONSTRUCTION.code -> "车道施工"
|
||||||
|
|
||||||
else -> ""
|
else -> ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取更多信息
|
||||||
|
*/
|
||||||
|
fun getMoreInfoAdapter(data: RenderEntity): TwoItemAdapter {
|
||||||
|
val adapter = TwoItemAdapter()
|
||||||
|
val list = mutableListOf<TwoItemAdapterItem>()
|
||||||
|
when (data.code) {
|
||||||
|
//可变线限速
|
||||||
|
DataCodeEnum.OMDB_LINK_SPEEDLIMIT_VAR.code ->
|
||||||
|
list.addAll(getChangeLimitSpeedInfo(data))
|
||||||
|
//常规点限速
|
||||||
|
DataCodeEnum.OMDB_SPEEDLIMIT.code ->
|
||||||
|
list.addAll(getSpeedLimitMoreInfoText(data))
|
||||||
|
|
||||||
|
//条件点限速
|
||||||
|
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code ->
|
||||||
|
list.addAll(getConditionLimitMoreInfoText(data))
|
||||||
|
//到路线
|
||||||
|
DataCodeEnum.OMDB_RD_LINK.code -> {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "linkPid", text = "${data.properties["linkPid"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "起点号码", text = "${data.properties["snodePid"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "终点号码", text = "${data.properties["enodePid"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
//种别
|
||||||
|
DataCodeEnum.OMDB_RD_LINK_KIND.code -> {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "linkPid", text = "${data.properties["linkPid"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
try {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "种别",
|
||||||
|
text = "${getKindType(data.properties["kind"]!!.toInt())}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//道路方向
|
||||||
|
DataCodeEnum.OMDB_LINK_DIRECT.code -> {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "linkPid", text = "${data.properties["linkPid"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
try {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "通行方向",
|
||||||
|
text = "${getRoadDirectionType(data.properties["direct"]!!.toInt())}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//普通交限
|
||||||
|
DataCodeEnum.OMDB_RESTRICTION.code -> {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "linkIn",
|
||||||
|
text = "${data.properties["linkIn"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "linkOut",
|
||||||
|
text = "${data.properties["linkOut"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
//道路功能等级
|
||||||
|
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "功能等级",
|
||||||
|
text = "等级${data.properties["functionClass"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
//常规线限速
|
||||||
|
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
|
||||||
|
list.addAll(getLinkSpeedLimitMoreInfo(data))
|
||||||
|
}
|
||||||
|
//车道数
|
||||||
|
DataCodeEnum.OMDB_LANE_NUM.code -> {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "车道总数",
|
||||||
|
text = "${data.properties["laneNum"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "顺方向车道数",
|
||||||
|
text = "${data.properties["laneS2e"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "逆方向车道数",
|
||||||
|
text = "${data.properties["laneE2s"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
var str = when (data.properties["laneClass"]) {
|
||||||
|
"0" -> "未赋值"
|
||||||
|
"1" -> "一条车道"
|
||||||
|
"2" -> "两或三条"
|
||||||
|
"3" -> "四条及以上"
|
||||||
|
"-99" -> "参考PA"
|
||||||
|
else -> ""
|
||||||
|
}
|
||||||
|
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "车道数等级",
|
||||||
|
text = str
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
//路口
|
||||||
|
DataCodeEnum.OMDB_INTERSECTION.code -> {
|
||||||
|
val type = when (data.properties["type"]) {
|
||||||
|
"0" -> "简单路口"
|
||||||
|
"1" -> "复合路口"
|
||||||
|
else -> ""
|
||||||
|
}
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "路口类型",
|
||||||
|
text = type
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
//道路施工
|
||||||
|
DataCodeEnum.OMDB_LINK_CONSTRUCTION.code -> {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "linkPid", text = "${data.properties["linkPid"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
val validPeriod = data.properties["validPeriod"]
|
||||||
|
if(validPeriod != null){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//车道施工
|
||||||
|
DataCodeEnum.OMDB_LANE_CONSTRUCTION.code -> {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "linkPid", text = "${data.properties["linkPid"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
adapter.data = list
|
||||||
|
return adapter
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取路口详细信息
|
* 获取路口详细信息
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fun getIntersectionInfo(renderEntity: RenderEntity): List<LaneBoundaryItem> {
|
fun getIntersectionInfo(renderEntity: RenderEntity): List<LaneBoundaryItem> {
|
||||||
val list = mutableListOf<LaneBoundaryItem>()
|
val list = mutableListOf<LaneBoundaryItem>()
|
||||||
list.add(
|
list.add(
|
||||||
@ -526,12 +653,6 @@ class SignUtil {
|
|||||||
return "0"
|
return "0"
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取种别名称
|
|
||||||
*/
|
|
||||||
private fun getKindText(data: RenderEntity): String {
|
|
||||||
return data.properties["kind"].toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 常规点限速更多信息
|
* 常规点限速更多信息
|
||||||
@ -572,37 +693,6 @@ class SignUtil {
|
|||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 限速图标
|
|
||||||
*/
|
|
||||||
private fun getSpeedLimitIcon(data: RenderEntity): Int {
|
|
||||||
try {
|
|
||||||
//限速标志 0 限速开始 1 限速解除
|
|
||||||
return when (data.properties["speedFlag"]) {
|
|
||||||
"1" -> return R.drawable.icon_speed_limit_off
|
|
||||||
else -> return R.drawable.icon_speed_limit
|
|
||||||
}
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Log.e("jingo", "获取限速面板ICON出错2 $e")
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 条件限速图标
|
|
||||||
*/
|
|
||||||
private fun getConditionalSpeedLimitIcon(data: RenderEntity): Int {
|
|
||||||
try {
|
|
||||||
//限速标志 0 限速开始 1 限速解除
|
|
||||||
return when (data.properties["speedFlag"]) {
|
|
||||||
"1" -> return R.drawable.icon_conditional_speed_limit_off
|
|
||||||
else -> return R.drawable.icon_conditional_speed_limit
|
|
||||||
}
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Log.e("jingo", "获取限速面板ICON出错2 $e")
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取看板图标
|
* 获取看板图标
|
||||||
@ -617,9 +707,21 @@ class SignUtil {
|
|||||||
// //车道数
|
// //车道数
|
||||||
// 2041 -> getLaneNumIcon(data)
|
// 2041 -> getLaneNumIcon(data)
|
||||||
//普通点限速
|
//普通点限速
|
||||||
DataCodeEnum.OMDB_SPEEDLIMIT.code -> getSpeedLimitIcon(data)
|
DataCodeEnum.OMDB_SPEEDLIMIT.code -> {
|
||||||
|
//限速标志 0 限速开始 1 限速解除
|
||||||
|
when (data.properties["speedFlag"]) {
|
||||||
|
"1" -> return R.drawable.icon_speed_limit_off
|
||||||
|
else -> return R.drawable.icon_speed_limit
|
||||||
|
}
|
||||||
|
}
|
||||||
//条件点限速
|
//条件点限速
|
||||||
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getConditionalSpeedLimitIcon(data)
|
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> {
|
||||||
|
//限速标志 0 限速开始 1 限速解除
|
||||||
|
when (data.properties["speedFlag"]) {
|
||||||
|
"1" -> return R.drawable.icon_conditional_speed_limit_off
|
||||||
|
else -> return R.drawable.icon_conditional_speed_limit
|
||||||
|
}
|
||||||
|
}
|
||||||
//可变点限速
|
//可变点限速
|
||||||
DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code -> R.drawable.icon_change_limit
|
DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code -> R.drawable.icon_change_limit
|
||||||
//电子眼
|
//电子眼
|
||||||
@ -631,7 +733,6 @@ class SignUtil {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取种别图标
|
* 获取种别图标
|
||||||
*/
|
*/
|
||||||
@ -832,11 +933,43 @@ class SignUtil {
|
|||||||
*/
|
*/
|
||||||
fun getElectronicEyeMoreInfo(renderEntity: RenderEntity): List<TwoItemAdapterItem> {
|
fun getElectronicEyeMoreInfo(renderEntity: RenderEntity): List<TwoItemAdapterItem> {
|
||||||
val list = mutableListOf<TwoItemAdapterItem>()
|
val list = mutableListOf<TwoItemAdapterItem>()
|
||||||
|
|
||||||
|
|
||||||
|
val dir = when (renderEntity.properties["direct"]) {
|
||||||
|
"2" -> "顺方向"
|
||||||
|
"3" -> "逆方向"
|
||||||
|
else -> ""
|
||||||
|
}
|
||||||
|
if (dir != "") {
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "作用方向",
|
||||||
|
text = dir
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val kindUp = when (renderEntity.properties["kindUp"]) {
|
||||||
|
"0" -> "未调查"
|
||||||
|
"1" -> "限速电子眼"
|
||||||
|
"4" -> "区间测速电子眼"
|
||||||
|
"5" -> "交通信号灯电子眼"
|
||||||
|
"6" -> "专用车道电子眼"
|
||||||
|
"7" -> "违章电子眼"
|
||||||
|
"11" -> "路况监控电子眼"
|
||||||
|
"19" -> "交通标线电子眼"
|
||||||
|
"20" -> "专用功能电子眼"
|
||||||
|
else -> ""
|
||||||
|
}
|
||||||
|
|
||||||
|
list.add(TwoItemAdapterItem(title = "电子眼类型大分类", text = kindUp))
|
||||||
|
|
||||||
val kindCode = renderEntity.properties["kind"]!!.toInt()
|
val kindCode = renderEntity.properties["kind"]!!.toInt()
|
||||||
val kind = TwoItemAdapterItem(
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
title = "电子眼类型", text = getElectronicEyeKindType(kindCode)
|
title = "电子眼类型", text = getElectronicEyeKindType(kindCode)
|
||||||
)
|
)
|
||||||
list.add(kind)
|
)
|
||||||
when (kindCode) {
|
when (kindCode) {
|
||||||
1, 2, 3, 4, 5, 6, 20, 21 -> {
|
1, 2, 3, 4, 5, 6, 20, 21 -> {
|
||||||
list.add(
|
list.add(
|
||||||
@ -870,6 +1003,11 @@ class SignUtil {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
list.add(
|
||||||
|
TwoItemAdapterItem(
|
||||||
|
title = "照射角度", text = "${renderEntity.properties["angle"]}"
|
||||||
|
)
|
||||||
|
)
|
||||||
return list
|
return list
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1031,106 +1169,13 @@ class SignUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
//常规线限速详细信息
|
||||||
* 获取更多信息
|
private fun getLinkSpeedLimitMoreInfo(data: RenderEntity): List<TwoItemAdapterItem> {
|
||||||
*/
|
|
||||||
fun getMoreInfoAdapter(data: RenderEntity): TwoItemAdapter {
|
|
||||||
val adapter = TwoItemAdapter()
|
|
||||||
val list = mutableListOf<TwoItemAdapterItem>()
|
val list = mutableListOf<TwoItemAdapterItem>()
|
||||||
when (data.code) {
|
val dir = when (data.properties["direction"]) {
|
||||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT_VAR.code ->
|
"2" -> "顺方向"
|
||||||
list.addAll(getChangeLimitSpeedInfo(data))
|
"3" -> "逆方向"
|
||||||
//常规点限速
|
else -> ""
|
||||||
DataCodeEnum.OMDB_SPEEDLIMIT.code ->
|
|
||||||
list.addAll(getSpeedLimitMoreInfoText(data))
|
|
||||||
|
|
||||||
//条件点限速
|
|
||||||
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code ->
|
|
||||||
list.addAll(getConditionLimitMoreInfoText(data))
|
|
||||||
//到路线
|
|
||||||
DataCodeEnum.OMDB_RD_LINK.code -> {
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "linkPid", text = "${data.properties["linkPid"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "起点号码", text = "${data.properties["snodePid"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "终点号码", text = "${data.properties["enodePid"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
//种别
|
|
||||||
DataCodeEnum.OMDB_RD_LINK_KIND.code -> {
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "linkPid", text = "${data.properties["linkPid"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
try {
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "种别",
|
|
||||||
text = "${getKindType(data.properties["kind"]!!.toInt())}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
} catch (e: Throwable) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
//道路方向
|
|
||||||
DataCodeEnum.OMDB_LINK_DIRECT.code -> {
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "linkPid", text = "${data.properties["linkPid"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
try {
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "通行方向",
|
|
||||||
text = "${getRoadDirectionType(data.properties["direct"]!!.toInt())}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
} catch (e: Throwable) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DataCodeEnum.OMDB_RESTRICTION.code -> {
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "linkIn",
|
|
||||||
text = "${data.properties["linkIn"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "linkOut",
|
|
||||||
text = "${data.properties["linkOut"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> {
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "功能等级",
|
|
||||||
text = "等级${data.properties["functionClass"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
|
|
||||||
val direction = data.properties["direction"]
|
|
||||||
var dir = ""
|
|
||||||
if (direction == "2") {
|
|
||||||
dir = "顺方向"
|
|
||||||
} else if (direction == "3") {
|
|
||||||
dir = "逆方向"
|
|
||||||
}
|
}
|
||||||
if (dir != "") {
|
if (dir != "") {
|
||||||
list.add(
|
list.add(
|
||||||
@ -1209,59 +1254,10 @@ class SignUtil {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
return list
|
||||||
DataCodeEnum.OMDB_LANE_NUM.code -> {
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "车道总数",
|
|
||||||
text = "${data.properties["laneNum"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "顺方向车道数",
|
|
||||||
text = "${data.properties["laneS2e"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "逆方向车道数",
|
|
||||||
text = "${data.properties["laneE2s"]}"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
var str = when (data.properties["laneClass"]) {
|
|
||||||
"0" -> "未赋值"
|
|
||||||
"1" -> "一条车道"
|
|
||||||
"2" -> "两或三条"
|
|
||||||
"3" -> "四条及以上"
|
|
||||||
"-99" -> "参考PA"
|
|
||||||
else -> ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "车道数等级",
|
|
||||||
text = str
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
DataCodeEnum.OMDB_INTERSECTION.code -> {
|
|
||||||
val type = when (data.properties["type"]) {
|
|
||||||
"0" -> "简单路口"
|
|
||||||
"1" -> "复合路口"
|
|
||||||
else -> ""
|
|
||||||
}
|
|
||||||
list.add(
|
|
||||||
TwoItemAdapterItem(
|
|
||||||
title = "路口类型",
|
|
||||||
text = type
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
adapter.data = list
|
|
||||||
return adapter
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -55,6 +55,7 @@ class SpeakMode(private val context: Context) : TextToSpeech.OnInitListener {
|
|||||||
fun setData(json: String?) {}
|
fun setData(json: String?) {}
|
||||||
override fun onInit(status: Int) {
|
override fun onInit(status: Int) {
|
||||||
this.status = status
|
this.status = status
|
||||||
|
if(mTextToSpeech != null) {
|
||||||
val result = mTextToSpeech.setLanguage(Locale.CHINESE)
|
val result = mTextToSpeech.setLanguage(Locale.CHINESE)
|
||||||
if (result == TextToSpeech.LANG_MISSING_DATA
|
if (result == TextToSpeech.LANG_MISSING_DATA
|
||||||
|| result == TextToSpeech.LANG_NOT_SUPPORTED
|
|| result == TextToSpeech.LANG_NOT_SUPPORTED
|
||||||
@ -70,6 +71,7 @@ class SpeakMode(private val context: Context) : TextToSpeech.OnInitListener {
|
|||||||
}
|
}
|
||||||
Log.i("TextToSpeechDemo", status.toString())
|
Log.i("TextToSpeechDemo", status.toString())
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//读语音处理
|
//读语音处理
|
||||||
fun speakText(message: String) {
|
fun speakText(message: String) {
|
||||||
|
6
app/src/main/java/com/navinfo/omqs/util/TimePeriod.kt
Normal file
6
app/src/main/java/com/navinfo/omqs/util/TimePeriod.kt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package com.navinfo.omqs.util
|
||||||
|
|
||||||
|
data class TimePeriod(
|
||||||
|
val child: TimePeriod? = null
|
||||||
|
|
||||||
|
)
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_selected="true" android:color="@color/default_blue_text_color" />
|
<item android:state_selected="true" android:color="@color/default_blue_text_color" />
|
||||||
<item android:color="@color/black" />
|
<item android:color="#15141F" />
|
||||||
</selector>
|
</selector>
|
5
app/src/main/res/color/selector_gray_blue_color.xml
Normal file
5
app/src/main/res/color/selector_gray_blue_color.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:state_selected="true" android:color="#2E38D2" />
|
||||||
|
<item android:color="@color/gray_121" />
|
||||||
|
</selector>
|
7
app/src/main/res/drawable/shape_oval_red_bg.xml
Normal file
7
app/src/main/res/drawable/shape_oval_red_bg.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="oval">
|
||||||
|
|
||||||
|
<solid android:color="@color/red" />
|
||||||
|
|
||||||
|
</shape>
|
@ -141,7 +141,7 @@
|
|||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/main_activity_calc_distance"
|
android:id="@+id/main_activity_calc_distance"
|
||||||
style="@style/top_right_drawer_btns_style"
|
style="@style/top_right_drawer_btns_style"
|
||||||
android:onClick="@{()->mainActivity.onClickCalcDistance()}"
|
android:onClick="@{()->mainActivity.measuringToolOn()}"
|
||||||
android:src="@drawable/icon_calc_disance" />
|
android:src="@drawable/icon_calc_disance" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
|
android:background="@drawable/selector_adapter_item_select_bg"
|
||||||
android:padding="5dp">
|
android:padding="5dp">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -10,6 +11,6 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="name"
|
android:text="name"
|
||||||
android:textColor="@color/black"
|
android:textColor="@color/selector_black_blue_color"
|
||||||
android:textSize="16sp" />
|
android:textSize="16sp" />
|
||||||
</FrameLayout>
|
</FrameLayout>
|
@ -27,7 +27,7 @@
|
|||||||
android:layout_marginRight="30dp"
|
android:layout_marginRight="30dp"
|
||||||
android:layout_toRightOf="@id/task_head"
|
android:layout_toRightOf="@id/task_head"
|
||||||
android:text="linkPID"
|
android:text="linkPID"
|
||||||
android:textColor="#15141F"
|
android:textColor="@color/selector_black_blue_color"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -39,7 +39,7 @@
|
|||||||
android:layout_alignLeft="@id/task_link_pid"
|
android:layout_alignLeft="@id/task_link_pid"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:text="mesh"
|
android:text="mesh"
|
||||||
android:textColor="@color/gray_121"
|
android:textColor="@color/selector_gray_blue_color"
|
||||||
android:textSize="13sp" />
|
android:textSize="13sp" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
@ -49,4 +49,15 @@
|
|||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:layout_centerVertical="true"
|
android:layout_centerVertical="true"
|
||||||
android:src="@drawable/selector_task_link_edit_icon" />
|
android:src="@drawable/selector_task_link_edit_icon" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/task_badge"
|
||||||
|
android:layout_width="8dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_marginRight="4dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_alignTop="@id/task_edit"
|
||||||
|
android:layout_alignRight="@id/task_edit"
|
||||||
|
android:background="@drawable/shape_oval_red_bg" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
@ -33,7 +33,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_toRightOf="@id/task_list_head"
|
android:layout_toRightOf="@id/task_list_head"
|
||||||
android:text="任务名称"
|
android:text="任务名称"
|
||||||
android:textColor="#15141F"
|
android:textColor="@color/selector_black_blue_color"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
|
||||||
@ -47,7 +47,7 @@
|
|||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="5dp"
|
||||||
android:text="版本号"
|
android:text="版本号"
|
||||||
android:textColor="@color/gray_121"
|
android:textColor="@color/selector_gray_blue_color"
|
||||||
android:textSize="13sp" />
|
android:textSize="13sp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -58,7 +58,7 @@
|
|||||||
android:layout_below="@id/task_data_version"
|
android:layout_below="@id/task_data_version"
|
||||||
android:layout_alignLeft="@id/task_name"
|
android:layout_alignLeft="@id/task_name"
|
||||||
android:text="省市名称"
|
android:text="省市名称"
|
||||||
android:textColor="@color/gray_121"
|
android:textColor="@color/selector_gray_blue_color"
|
||||||
android:textSize="13sp" />
|
android:textSize="13sp" />
|
||||||
|
|
||||||
<com.navinfo.omqs.ui.widget.TextProgressButtonBar
|
<com.navinfo.omqs.ui.widget.TextProgressButtonBar
|
||||||
|
@ -44,29 +44,27 @@
|
|||||||
app:layout_constraintRight_toRightOf="parent"
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/evaluation_bar_cancel"
|
|
||||||
android:layout_width="40dp"
|
|
||||||
android:layout_height="40dp"
|
|
||||||
android:layout_marginRight="10dp"
|
|
||||||
android:background="@color/transparent"
|
|
||||||
android:src="@drawable/icon_fragment_close"
|
|
||||||
android:visibility="gone"
|
|
||||||
app:layout_constraintRight_toLeftOf="@id/evaluation_bar_save"
|
|
||||||
app:layout_constraintTop_toTopOf="@id/evaluation_bar_save" />
|
|
||||||
|
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/evaluation_bar_delete"
|
android:id="@+id/evaluation_bar_delete"
|
||||||
android:layout_width="40dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:layout_centerInParent="true"
|
|
||||||
android:layout_marginRight="5dp"
|
android:layout_marginRight="5dp"
|
||||||
android:background="@color/transparent"
|
android:background="@color/transparent"
|
||||||
android:src="@drawable/icon_delete"
|
android:src="@drawable/icon_delete"
|
||||||
app:layout_constraintRight_toLeftOf="@id/evaluation_bar_cancel"
|
app:layout_constraintRight_toLeftOf="@id/evaluation_bar_save"
|
||||||
app:layout_constraintTop_toTopOf="@id/evaluation_bar_save" />
|
app:layout_constraintTop_toTopOf="@id/evaluation_bar_save"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/evaluation_bar_save" />
|
||||||
|
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/evaluation_bar_measuring"
|
||||||
|
android:layout_width="40dp"
|
||||||
|
android:layout_height="40dp"
|
||||||
|
android:background="@color/transparent"
|
||||||
|
android:src="@drawable/measuring_tool_distance"
|
||||||
|
app:layout_constraintRight_toLeftOf="@id/evaluation_bar_delete"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/evaluation_bar_save"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/evaluation_bar_save"/>
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@ -86,6 +84,23 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginBottom="7dp"
|
android:layout_marginBottom="7dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="7dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/evaluation_fragment_title_text_style"
|
||||||
|
android:text="ID" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/evaluation_id"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -10,10 +10,12 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/sign_info_title"
|
android:id="@+id/sign_info_title"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:drawableLeft="@drawable/icon_main_moreinfo_text_left"
|
android:layout_toLeftOf="@id/sign_info_cancel"
|
||||||
android:drawablePadding="4dp"
|
android:drawablePadding="4dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layout_marginRight="5dp"
|
||||||
android:text="电子眼"
|
android:text="电子眼"
|
||||||
android:textColor="@color/orange" />
|
android:textColor="@color/orange" />
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
|
|||||||
//新增marker图标样式
|
//新增marker图标样式
|
||||||
val mDefaultBitmap =
|
val mDefaultBitmap =
|
||||||
AndroidBitmap(BitmapFactory.decodeResource(context.resources, R.mipmap.marker))
|
AndroidBitmap(BitmapFactory.decodeResource(context.resources, R.mipmap.marker))
|
||||||
|
mDefaultBitmap.scaleTo(150, 150)
|
||||||
val markerSymbol = MarkerSymbol(
|
val markerSymbol = MarkerSymbol(
|
||||||
mDefaultBitmap,
|
mDefaultBitmap,
|
||||||
MarkerSymbol.HotspotPlace.CENTER
|
MarkerSymbol.HotspotPlace.CENTER
|
||||||
|
Loading…
x
Reference in New Issue
Block a user