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

 Conflicts:
	vtm
This commit is contained in:
squallzhjch 2023-09-26 17:15:41 +08:00
commit b7192a50e4
24 changed files with 261 additions and 79 deletions

View File

@ -136,6 +136,11 @@ dependencies {
//
implementation 'com.yanzhenjie.recyclerview:x:1.3.2'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
// SDK
implementation 'com.umeng.umsdk:common:9.4.7'//
implementation 'com.umeng.umsdk:asms:1.4.1'//
implementation 'com.umeng.umsdk:apm:1.5.2' // U-APM包依赖()
}
//
kapt {

View File

@ -66,6 +66,13 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="um.650bece7b2f6fa00ba573c7a" />
</intent-filter>
</activity>
<activity

View File

@ -153,6 +153,7 @@
"table": "OMDB_BRIDGE",
"code": 2201,
"name": "桥",
"catch":true,
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
@ -170,6 +171,7 @@
"name": "隧道",
"zoomMin": 15,
"zoomMax": 20,
"catch":true,
"transformer": [
{
"k": "geometry",
@ -206,6 +208,7 @@
"checkLinkId": false,
"zoomMin": 18,
"zoomMax": 20,
"catch":true,
"transformer": [
{
"k": "geometry",
@ -222,6 +225,7 @@
"zoomMin": 18,
"zoomMax": 20,
"is3D": true,
"catch":true,
"transformer": [
{
"k": "geometry",
@ -319,6 +323,7 @@
"table": "OMDB_SPEEDLIMIT_COND",
"code": 4003,
"name": "条件点限速",
"catch":true,
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
@ -334,25 +339,26 @@
"table": "OMDB_SPEEDLIMIT_VAR",
"code": 4004,
"name": "可变点限速",
"catch":true,
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "location",
"v": "1",
"klib": "location",
"klib": "ref",
"vlib": "左"
},
{
"k": "location",
"v": "2",
"klib": "locationlib",
"klib": "ref",
"vlib": "右"
},
{
"k": "location",
"v": "3",
"klib": "location",
"klib": "ref",
"vlib": "上"
}
]
@ -540,6 +546,7 @@
"code": 2004,
"name": "道路属性",
"existSubCode": true,
"catch":true,
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
@ -577,6 +584,7 @@
"table": "OMDB_ROUNDABOUT",
"code": 2204,
"name": "环岛",
"catch":true,
"zoomMin": 15,
"zoomMax": 17,
"transformer": [

View File

@ -107,6 +107,16 @@ class Constant {
*/
var MapRotateEnable = false
/**
* Marker显隐
*/
var MapMarkerCloseEnable = false
/**
* 是否开启线捕捉
*/
var MapCatchLine = false
/**
* 全要素捕捉
*/

View File

@ -9,6 +9,7 @@ import android.view.WindowManager
import com.navinfo.omqs.tools.FileManager
import com.navinfo.omqs.ui.manager.TakePhotoManager
import com.navinfo.omqs.util.NetUtils
import com.umeng.commonsdk.UMConfigure
import dagger.hilt.android.HiltAndroidApp
import org.videolan.vlc.Util
import java.security.MessageDigest
@ -21,6 +22,8 @@ class OMQSApplication : Application() {
Util.getInstance().init(applicationContext)
NetUtils.getInstance().init(this)
TakePhotoManager.getInstance().init(this, 1)
// 初始化友盟统计
UMConfigure.preInit(this,"650bece7b2f6fa00ba573c7a","native")
}
private fun getKey(inputString: String): String {

View File

@ -21,6 +21,7 @@ import org.locationtech.jts.operation.buffer.BufferOp
import org.oscim.core.GeoPoint
import org.oscim.core.MercatorProjection
import javax.inject.Inject
import kotlin.reflect.jvm.jvmName
import kotlin.streams.toList
class RealmOperateHelper() {
@ -158,6 +159,7 @@ class RealmOperateHelper() {
result.addAll(it)
}
}
realm.close()
return result
}
@ -278,36 +280,30 @@ class RealmOperateHelper() {
val yEnd = tileYSet.stream().max(Comparator.naturalOrder()).orElse(null)
val realm = getSelectTaskRealmInstance()
var realmList = mutableListOf<RenderEntity>()
val realmQuery = getSelectTaskRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
// 筛选不显示的数据
if (catchAll) {
// 查询realm中对应tile号的数据
realmList = getSelectTaskRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
realmList = realmQuery.findAll()
} else {
// 查询realm中对应tile号的数据
if (Constant.CATCH_ALL) {
realmList = getSelectTaskRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.findAll()
realmList = realmQuery.findAll()
} else {
realmList = getSelectTaskRealmTools(RenderEntity::class.java, false)
.greaterThanOrEqualTo("tileX", xStart)
.lessThanOrEqualTo("tileX", xEnd)
.greaterThanOrEqualTo("tileY", yStart)
.lessThanOrEqualTo("tileY", yEnd)
.greaterThan("catchEnable", 0)
.findAll()
realmList = realmQuery.greaterThan("catchEnable", 0).findAll()
}
}
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val queryResult = realmList?.stream()?.filter {
polygon.intersects(it.wkt)
if(Constant.MapCatchLine){
polygon.intersects(it.wkt) && it.wkt?.geometryType?.uppercase().equals("LINESTRING")||it.wkt?.geometryType?.uppercase().equals("POLYGON")
}else{
polygon.intersects(it.wkt) && it.wkt?.geometryType?.uppercase().equals("POINT")||it.wkt?.geometryType?.uppercase().equals("POLYGON")
}
}?.toList()
queryResult?.let {
if (sort) {
@ -433,19 +429,26 @@ class RealmOperateHelper() {
clazz: Class<E>,
enableSql: Boolean
): RealmQuery<E> {
return if (MapParamUtils.getDataLayerEnum() != null) {
var realmQuery = getSelectTaskRealmInstance().where(clazz)
if (MapParamUtils.getDataLayerEnum() != null) {
if (enableSql) {
var sql =
" enable${MapParamUtils.getDataLayerEnum().sql}"
getSelectTaskRealmInstance().where(clazz).rawPredicate(sql)
} else {
getSelectTaskRealmInstance().where(clazz)
}
} else {
getSelectTaskRealmInstance().where(clazz)
}
if(clazz.name==RenderEntity::class.jvmName){
// 筛选不显示的数据
if (com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY != null && com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY.size > 0) {
realmQuery.beginGroup()
for (type in com.navinfo.collect.library.system.Constant.HAD_LAYER_INVISIABLE_ARRAY) {
realmQuery.notEqualTo("table", type)
}
realmQuery.endGroup()
}
}
return realmQuery
}
fun getSelectTaskRealmInstance(): Realm {

View File

@ -17,6 +17,7 @@ import com.navinfo.omqs.R
import com.navinfo.omqs.databinding.ActivityLoginBinding
import com.navinfo.omqs.ui.activity.CheckPermissionsActivity
import com.navinfo.omqs.ui.activity.map.MainActivity
import com.umeng.commonsdk.UMConfigure
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@ -39,6 +40,7 @@ class LoginActivity : CheckPermissionsActivity() {
binding.activity = this
initView()
Log.e("jingo", getScreenParams())
UMConfigure.init(this, "650bece7b2f6fa00ba573c7a", "native", UMConfigure.DEVICE_TYPE_PHONE, "")
}
private fun getScreenParams(): String {

View File

@ -783,10 +783,11 @@ class MainActivity : BaseActivity() {
}
/**
* 刷新地图
* 线捕捉开关
*/
fun refrushOnclick(view: View) {
mapController.layerManagerHandler.updateOMDBVectorTileLayer()
fun catchLineOnclick(view: View) {
viewModel.setCatchRoad(!viewModel.isCatchRoad())
binding.mainActivityMapCatchLine.isSelected = viewModel.isCatchRoad()
}
/**

View File

@ -184,6 +184,11 @@ class MainViewModel @Inject constructor(
*/
private var bHighRoad = true
/**
* 是不是捕捉线
*/
private var bCatchRoad = false
/**
* 是不是选择轨迹点
*/
@ -631,11 +636,15 @@ class MainViewModel @Inject constructor(
*/
private suspend fun captureItem(point: GeoPoint) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
var buffer = 3.2
if(mapController.mMapView.mapLevel>=18){
buffer = 2.0
}
val itemList = realmOperateHelper.queryElement(
GeometryTools.createPoint(
point.longitude, point.latitude
),
buffer = 3.2, catchAll = false,
buffer = buffer, catchAll = false,
)
//增加道路线过滤原则
val filterResult = itemList.filter {
@ -1140,6 +1149,14 @@ class MainViewModel @Inject constructor(
}
/**
* 开启捕捉线
*/
fun setCatchRoad(select: Boolean) {
bCatchRoad = select
Constant.MapCatchLine = bCatchRoad
}
/**
* 是否开启线高亮
*/
@ -1147,6 +1164,13 @@ class MainViewModel @Inject constructor(
return bHighRoad
}
/**
* 是否开启捕捉线
*/
fun isCatchRoad(): Boolean {
return bCatchRoad
}
/**
* 开启轨迹选择
*/

View File

@ -35,6 +35,7 @@ import com.permissionx.guolindev.PermissionX
import dagger.hilt.android.AndroidEntryPoint
import org.oscim.core.GeoPoint
import org.oscim.core.MapPosition
import java.io.File
import javax.inject.Inject
/**
@ -152,6 +153,17 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
it.title = "锁定地图旋转及视角"
}
}
R.id.personal_center_menu_marker -> {
niMapController.mMapView.vtmMap.eventLayer.enableTilt(Constant.MapRotateEnable)
Constant.MapMarkerCloseEnable = !Constant.MapMarkerCloseEnable
//增加开关控制
niMapController.markerHandle.setQsRecordMarkEnable(!Constant.MapMarkerCloseEnable)
if (Constant.MapMarkerCloseEnable) {
it.title = "显示Marker"
} else {
it.title = "隐藏Marker"
}
}
R.id.personal_center_menu_catch_all -> {
Constant.CATCH_ALL = !Constant.CATCH_ALL
if (Constant.CATCH_ALL) {
@ -166,7 +178,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
// 定位到指定位置
niMapController.mMapView.vtmMap.animator()
// .animateTo(GeoPoint( 40.05108004733645, 116.29187746293708 ))
.animateTo(GeoPoint(40.09819324139729,116.53123207733361 ))
.animateTo(GeoPoint(40.5016054261786, 115.82381251427815))
}
R.id.personal_center_menu_open_all_layer -> {
@ -220,6 +232,13 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
it.title = "开启全要素捕捉"
}
}
R.id.personal_center_menu_marker -> {
if (Constant.MapMarkerCloseEnable) {
it.title = "显示Marker"
} else {
it.title = "隐藏Marker"
}
}
}
}
}

View File

@ -97,6 +97,12 @@ class SignMoreInfoFragment : BaseFragment() {
binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getElectronicEyeMoreInfo(it.renderEntity))
}
//交通标牌
DataCodeEnum.OMDB_TRAFFIC_SIGN.code -> {
val adapter = TwoItemAdapter()
binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getTrafficSignMoreInfo(it))
}
else -> {
val adapter = SignUtil.getMoreInfoAdapter(it.renderEntity)
binding.signInfoRecyclerview.adapter = adapter

View File

@ -487,31 +487,55 @@ class TaskViewModel @Inject constructor(
fun checkUploadTask(context: Context, taskBean: TaskBean) {
viewModelScope.launch(Dispatchers.IO) {
val realm = Realm.getDefaultInstance()
var result = 0
val map: MutableMap<TaskBean, Boolean> = HashMap<TaskBean, Boolean>()
taskBean.hadLinkDvoList.forEach { hadLinkDvoBean ->
val objects =
realm.where(QsRecordBean::class.java).equalTo("linkId", hadLinkDvoBean.linkPid)
.and().equalTo("taskId", hadLinkDvoBean.taskId).findAll()
val map: MutableMap<TaskBean, Boolean> = HashMap<TaskBean, Boolean>()
if (objects.isEmpty() && hadLinkDvoBean.reason.isEmpty()) {
withContext(Dispatchers.Main) {
liveDataTaskUpload.postValue(map)
val mDialog = FirstDialog(context)
mDialog.setTitle("提示?")
mDialog.setMessage("此任务中存在未测评link请确认")
mDialog.setPositiveButton(
"确定"
) { _, _ ->
mDialog.dismiss()
map[taskBean] = true
liveDataTaskUpload.postValue(map)
}
mDialog.setNegativeButton(
"取消"
) { _, _ -> mDialog.dismiss() }
mDialog.show()
if(hadLinkDvoBean.linkStatus==3){
result = 1
realm.close()
return@forEach
}else{
result = 2
}
return@launch
}
}
if(result==1){
withContext(Dispatchers.Main) {
liveDataTaskUpload.postValue(map)
val mDialog = FirstDialog(context)
mDialog.setTitle("提示?")
mDialog.setMessage("此任务中存在新增Link无问题记录请添加至少一条记录")
mDialog.setPositiveButton(
"确定"
) { _, _ ->
mDialog.dismiss()
}
mDialog.setCancelVisibility(View.GONE)
mDialog.show()
}
}else if(result==2){
withContext(Dispatchers.Main) {
liveDataTaskUpload.postValue(map)
val mDialog = FirstDialog(context)
mDialog.setTitle("提示?")
mDialog.setMessage("此任务中存在未测评link请确认")
mDialog.setPositiveButton(
"确定"
) { _, _ ->
mDialog.dismiss()
map[taskBean] = true
liveDataTaskUpload.postValue(map)
}
mDialog.setNegativeButton(
"取消"
) { _, _ -> mDialog.dismiss() }
mDialog.show()
}
}else{
map[taskBean] = true
liveDataTaskUpload.postValue(map)
}

View File

@ -1650,6 +1650,55 @@ class SignUtil {
return list
}
/**
* 获取交通标牌详细信息
*/
fun getTrafficSignMoreInfo(renderEntity: RenderEntity): List<TwoItemAdapterItem> {
val list = mutableListOf<TwoItemAdapterItem>()
val trafsignShape = when (renderEntity.properties["trafsignShape"]) {
"1" -> "不规则形状"
"2" -> "长方形"
"3" -> "三角形"
"4" -> "圆形"
"5" -> "菱形"
"6" -> "到三角形"
"7" -> "正方形"
"8" -> "八角形"
else -> ""
}
if (trafsignShape != "") {
list.add(
TwoItemAdapterItem(
title = "形状", text = trafsignShape
)
)
}
val color = when (renderEntity.properties["color"]) {
"0" -> "未验证"
"1" -> "白色"
"2" -> "黄色"
"3" -> "红色"
"5" -> "棕色"
"6" -> "蓝色"
"7" -> "绿色"
"8" -> "黑色"
"9" -> "其他"
else -> ""
}
list.add(
TwoItemAdapterItem(
title = "颜色", text = color
)
)
list.add(
TwoItemAdapterItem(
title = "正北夹角", text = "${renderEntity.properties["heading"]}"
)
)
return list
}
/**
* 计算捕捉点到
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_open_catch_line" android:state_selected="true"></item>
<item android:drawable="@drawable/icon_close_catch_line" />
</selector>

View File

@ -248,13 +248,14 @@
app:layout_constraintLeft_toLeftOf="@id/main_activity_top_sign_recyclerview" />
<ImageButton
android:id="@+id/main_activity_map_update"
android:id="@+id/main_activity_map_catch_line"
style="@style/zoom_btns_style"
android:background="@drawable/selector_road_line_bg"
android:layout_marginBottom="12dp"
android:onClick="@{(view)->mainActivity.refrushOnclick(view)}"
android:src="@drawable/icon_map_refrush"
app:layout_constraintBottom_toTopOf="@id/main_activity_zoom_in"
app:layout_constraintRight_toRightOf="@id/main_activity_zoom_in" />
android:onClick="@{(view)->mainActivity.catchLineOnclick(view)}"
android:src="@drawable/selector_catch_line_src"
app:layout_constraintBottom_toTopOf="@id/main_activity_location"
app:layout_constraintRight_toRightOf="@id/main_activity_location" />
<ImageButton
@ -287,8 +288,8 @@
android:layout_marginBottom="12dp"
android:onClick="@{()->mainActivity.onClickLocation()}"
android:src="@drawable/icon_location_north"
app:layout_constraintBottom_toTopOf="@id/main_activity_map_update"
app:layout_constraintRight_toRightOf="@id/main_activity_map_update" />
app:layout_constraintBottom_toTopOf="@id/main_activity_zoom_in"
app:layout_constraintRight_toRightOf="@id/main_activity_zoom_in" />
<ImageButton
android:id="@+id/main_activity_note"
@ -296,8 +297,8 @@
android:layout_marginBottom="12dp"
android:onClick="@{()->mainActivity.onClickNewNote()}"
android:src="@drawable/icon_menu_note"
app:layout_constraintBottom_toTopOf="@id/main_activity_location"
app:layout_constraintRight_toRightOf="@id/main_activity_location" />
app:layout_constraintBottom_toTopOf="@id/main_activity_map_catch_line"
app:layout_constraintRight_toRightOf="@id/main_activity_map_catch_line" />
<ImageButton
android:id="@+id/main_activity_voice"
@ -338,7 +339,7 @@
android:id="@+id/main_activity_right_visibility_buttons_group2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="main_activity_close_line,main_activity_select_line,main_activity_voice,main_activity_note,main_activity_map_update,main_activity_zoom_in,main_activity_zoom_out,main_activity_geometry,main_activity_location" />
app:constraint_referenced_ids="main_activity_close_line,main_activity_select_line,main_activity_voice,main_activity_note,main_activity_map_catch_line,main_activity_zoom_in,main_activity_zoom_out,main_activity_geometry,main_activity_location" />
<fragment
android:id="@+id/main_activity_middle_fragment"

View File

@ -46,6 +46,11 @@
android:icon="@drawable/baseline_person_24"
android:visible="true"
android:title="锁定地图旋转及视角" />
<item
android:id="@+id/personal_center_menu_marker"
android:icon="@drawable/baseline_person_24"
android:visible="true"
android:title="隐藏Marker" />
<item
android:id="@+id/personal_center_menu_catch_all"
android:icon="@drawable/baseline_person_24"
@ -54,7 +59,7 @@
<item
android:id="@+id/personal_center_menu_version"
android:icon="@drawable/ic_baseline_layers_24"
android:title="版本23QE4_V1.5.2_20230919_A" />
android:title="版本23QE4_V1.5.3_20230920_A" />
</group>
<group android:checkableBehavior="single">
<item android:title="小标题">

View File

@ -1811,7 +1811,7 @@
<!-- 环岛 -->
<m v="OMDB_ROUNDABOUT">
<line stroke="#fcba5a" width="0.5" />
<symbol repeat="false" repeat-start="0" gland="false" repeat-gap="32" src="assets:omdb/icon_2204_0.svg"></symbol>
<symbol repeat="false" repeat-start="0" gland="false" repeat-gap="0" src="assets:omdb/icon_2204_0.svg"></symbol>
</m>
<!-- 停止位置 -->
@ -1871,18 +1871,10 @@
<!--可变点限速-->
<m v="OMDB_SPEEDLIMIT_VAR" >
<m k="speedFlag" v="0">
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4004_0.svg" symbol-height="42"
symbol-width="42"></symbol>
</m>
<m k="speedFlag" v="1">
<caption fill="#000000" k="maxSpeed" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4004_0.svg" symbol-height="42"
symbol-width="42"></symbol>
</m>
<caption fill="#ffffff" k="ref" priority="0" size="12" stroke="#ffffff"
stroke-width="1.0"></caption>
<symbol src="assets:omdb/icon_4004_0.svg" symbol-height="42"
symbol-width="42"></symbol>
</m>

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="197.9" height="198.5" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 197.9 198.5"><defs><style>.e{fill:#fad950;}.f{fill:#0a0a0a;}.g{fill:url(#d);stroke:#8b9fae;stroke-miterlimit:10;stroke-width:1.2px;}.h{fill:#535a60;opacity:0;}</style><linearGradient id="d" x1="57.2" y1="20.3" x2="140.7" y2="20.3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afbacb"/><stop offset=".1" stop-color="#c1ccda"/><stop offset=".4" stop-color="#d9e6f0"/><stop offset=".5" stop-color="#e3f0f8"/><stop offset=".6" stop-color="#dde9f2"/><stop offset=".8" stop-color="#ccd8e4"/><stop offset="1" stop-color="#b1bbcc"/><stop offset="1" stop-color="#aeb8c9"/></linearGradient></defs><g id="c"><g><rect class="h" y=".6" width="197.9" height="197.9"/><g><rect class="g" x="57.2" y=".6" width="83.4" height="39.3" rx="4.6" ry="4.6"/><g><path class="e" d="M62.4,4.4h73c1.4,0,2.6,1.1,2.6,2.6v28.8c0,1.4-1.1,2.6-2.6,2.6H62.4c-1.4,0-2.6-1.1-2.6-2.6V7c0-1.4,1.1-2.6,2.6-2.6Z"/><path class="f" d="M135.4,6.5c.3,0,.5,.2,.5,.5v28.8c0,.3-.2,.5-.5,.5H62.4c-.3,0-.5-.2-.5-.5V7c0-.3,.2-.5,.5-.5h73m0-4.1H62.4c-2.6,0-4.6,2.1-4.6,4.6v28.8c0,2.6,2.1,4.6,4.6,4.6h73c2.6,0,4.6-2.1,4.6-4.6V7c0-2.6-2.1-4.6-4.6-4.6h0Z"/></g><path d="M98.9,27.6c.7,0,1.3,.2,1.7,.7,.5,.5,.7,1,.7,1.7s-.2,1.2-.7,1.7c-.5,.5-1.1,.7-1.7,.7s-1.2-.2-1.7-.7c-.5-.5-.7-1-.7-1.7s.2-1.2,.7-1.7c.5-.5,1-.7,1.7-.7Zm2.1-17.3l-.5,15h-3.3l-.5-15h4.3Z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="b" xmlns="http://www.w3.org/2000/svg" width="84.6" height="40.5" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 84.6 40.5"><defs><style>.e{fill:#fad950;}.f{fill:#0a0a0a;}.g{fill:url(#d);stroke:#8b9fae;stroke-miterlimit:10;stroke-width:1.2px;}</style><linearGradient id="d" x1=".6" y1="20.3" x2="84" y2="20.3" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#afbacb"/><stop offset=".1" stop-color="#c1ccda"/><stop offset=".4" stop-color="#d9e6f0"/><stop offset=".5" stop-color="#e3f0f8"/><stop offset=".6" stop-color="#dde9f2"/><stop offset=".8" stop-color="#ccd8e4"/><stop offset="1" stop-color="#b1bbcc"/><stop offset="1" stop-color="#aeb8c9"/></linearGradient></defs><g id="c"><g><rect class="g" x=".6" y=".6" width="83.4" height="39.3" rx="4.6" ry="4.6"/><g><rect class="e" x="3.2" y="4.4" width="78.1" height="33.9" rx="2.6" ry="2.6"/><path class="f" d="M78.8,6.5c.3,0,.5,.2,.5,.5v28.8c0,.3-.2,.5-.5,.5H5.8c-.3,0-.5-.2-.5-.5V7c0-.3,.2-.5,.5-.5H78.8m0-4.1H5.8C3.3,2.4,1.2,4.4,1.2,7v28.8c0,2.6,2.1,4.6,4.6,4.6H78.8c2.6,0,4.6-2.1,4.6-4.6V7c0-2.6-2.1-4.6-4.6-4.6h0Z"/></g><path d="M42.3,27.6c.7,0,1.3,.2,1.7,.7,.5,.5,.7,1,.7,1.7s-.2,1.2-.7,1.7c-.5,.5-1.1,.7-1.7,.7s-1.2-.2-1.7-.7c-.5-.5-.7-1-.7-1.7s.2-1.2,.7-1.7c.5-.5,1-.7,1.7-.7Zm2.1-17.3l-.5,15h-3.3l-.5-15h4.3Z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -43,6 +43,8 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
*/
private val mDefaultTextColor = "#4E55AF"
private var markerEnable = true
/**
* 文字画笔
*/
@ -275,7 +277,12 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
// 设置矢量图层均在12级以上才显示
mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition ->
if (e == Map.SCALE_EVENT) {
qsRecordItemizedLayer.isEnabled = mapPosition.getZoomLevel() >= 12
if(markerEnable){
qsRecordItemizedLayer.isEnabled = mapPosition.getZoomLevel() >= 12
}else{
qsRecordItemizedLayer.isEnabled = false
}
niLocationItemizedLayer.isEnabled = mapPosition.getZoomLevel() >= 12
}
})
@ -372,6 +379,13 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
mMapView.updateMap(true)
}
fun setQsRecordMarkEnable(enable:Boolean){
qsRecordItemizedLayer.isEnabled = enable
markerEnable = enable
qsRecordItemizedLayer.populate()
mMapView.updateMap(true)
}
/**
* 增加或更新便签

View File

@ -1470,8 +1470,8 @@ public class GeometryTools {
double startLatitude = MercatorProjection.tileYToLatitude(tile.tileY, tile.zoomLevel);
double endLongitude = MercatorProjection.tileXToLongitude(tile.tileX + 1, tile.zoomLevel);
double endLatitude = MercatorProjection.tileYToLatitude(tile.tileY + 1, tile.zoomLevel);
return GeometryTools.createPolygonFromCoords(new Coordinate[]{new Coordinate(startLongitude, startLongitude), new Coordinate(endLongitude, startLatitude),
new Coordinate(endLongitude, endLatitude), new Coordinate(startLongitude, endLatitude), new Coordinate(startLongitude, startLongitude)});
return GeometryTools.createPolygonFromCoords(new Coordinate[]{new Coordinate(startLongitude, startLatitude), new Coordinate(endLongitude, startLatitude),
new Coordinate(endLongitude, endLatitude), new Coordinate(startLongitude, endLatitude), new Coordinate(startLongitude, startLatitude)});
}
/**
* 经纬度转墨卡托

View File

@ -6,6 +6,7 @@ pluginManagement {
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://repo1.maven.org/maven2/' }
maven { url 'https://jitpack.io' }
mavenCentral()
google()
@ -22,6 +23,7 @@ dependencyResolutionManagement {
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://repo1.maven.org/maven2/' }
maven { url 'https://jitpack.io' }
mavenCentral()