1.增加按任务linkpid进行数据显示业务2.增加桥要素渲染

This commit is contained in:
qiji4215 2023-08-04 10:10:46 +08:00
parent 0462a1682e
commit 19c8fd3cf3
25 changed files with 705 additions and 173 deletions

View File

@ -5,42 +5,42 @@
"code": 1012,
"name": "检查点",
"zoomMin": 16,
"zoomMax": 22
"zoomMax": 19
},
"2001": {
"table": "OMDB_RD_LINK",
"code": 2001,
"name": "道路线",
"zoomMin": 16,
"zoomMax": 22
"zoomMax": 17
},
"2002": {
"table": "OMDB_RD_LINK_FUNCTION_CLASS",
"code": 2002,
"name": "道路功能等级",
"zoomMin": 16,
"zoomMax": 22
"zoomMax": 19
},
"2008": {
"table": "OMDB_RD_LINK_KIND",
"code": 2008,
"name": "道路种别",
"zoomMin": 16,
"zoomMax": 22
"zoomMax": 19
},
"2010": {
"table": "OMDB_LINK_DIRECT",
"code": 2010,
"name": "道路方向",
"zoomMin": 16,
"zoomMax": 22
"zoomMax": 19
},
"2011": {
"table": "OMDB_LINK_NAME",
"code": 2011,
"name": "道路名",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 19,
"transformer": [
{
"k": "geometry",
@ -54,8 +54,9 @@
"table": "OMDB_LANE_MARK_BOUNDARYTYPE",
"code": 2013,
"name": "车道边界类型",
"zoomMin": 19,
"zoomMax": 22,
"zoomMin": 18,
"zoomMax": 21,
"checkLinkId": false,
"transformer": [
{
"k": "geometry",
@ -70,21 +71,21 @@
"code": 2019,
"name": "常规线限速",
"zoomMin": 16,
"zoomMax": 22
"zoomMax": 19
},
"2020": {
"table": "OMDB_LINK_SPEEDLIMIT_COND",
"code": 2020,
"name": "条件线限速",
"zoomMin": 16,
"zoomMax": 22
"zoomMax": 19
},
"2021": {
"table": "OMDB_LINK_SPEEDLIMIT_VAR",
"code": 2021,
"name": "可变线限速",
"zoomMin": 16,
"zoomMax": 22
"zoomMax": 19
},
"2022": {
"table": "OMDB_CON_ACCESS",
@ -110,20 +111,31 @@
"table": "OMDB_RDBOUND_BOUNDARYTYPE",
"code": 2083,
"name": "道路边界类型",
"zoomMin": 19,
"zoomMax": 22
"zoomMin": 18,
"zoomMax": 21,
"checkLinkId": false
},
"2201":{
"table": "OMDB_BRIDGE",
"code": 2201,
"name": "桥"
"name": "桥",
"zoomMin": 16,
"zoomMax": 21,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferencePoint(bridgeType,OMDB_BRIDGE)"
}
]
},
"2202":{
"table": "OMDB_TUNNEL",
"code": 2202,
"name": "隧道",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 21,
"transformer": [
{
"k": "geometry",
@ -134,11 +146,11 @@
]
},
"4001": {
"table": "OMDB_INTERSECTION",
"code": 4001,
"name": "路口",
"table": "OMDB_INTERSECTION",
"code": 4001,
"name": "路口",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 19,
"transformer": [
{
"k": "geometry",
@ -147,13 +159,13 @@
"vlib": "generateIntersectionReference()"
}
]
},
},
"4002": {
"table": "OMDB_SPEEDLIMIT",
"code": 4002,
"name": "常规点限速",
"table": "OMDB_SPEEDLIMIT",
"code": 4002,
"name": "常规点限速",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 19,
"transformer": [
{
"k": "maxSpeed",
@ -168,13 +180,13 @@
"vlib": "translateRight()"
}
]
},
},
"4003":{
"table": "OMDB_SPEEDLIMIT_COND",
"code": 4003,
"name": "条件点限速",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 19,
"transformer": [
{
"k": "maxSpeed",
@ -189,7 +201,7 @@
"code": 4004,
"name": "可变点限速",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 19,
"transformer": [
{
"k": "location",
@ -216,7 +228,7 @@
"code": 4006,
"name": "普通交限",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 21,
"transformer": [
{
"k": "geometry",
@ -255,7 +267,7 @@
"code": 4010,
"name": "电子眼",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 21,
"transformer": [
{
"k": "geometry",
@ -273,7 +285,7 @@
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine()"
"vlib": "generateDirectReferenceLine(3)"
},
{
"k": "geometry",
@ -288,7 +300,7 @@
"code": 4022,
"name": "交通灯",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 21,
"transformer": [
]
},
@ -297,7 +309,7 @@
"code": 4601,
"name": "车信",
"zoomMin": 16,
"zoomMax": 22,
"zoomMax": 19,
"transformer": [
{
"k": "geometry",
@ -319,12 +331,12 @@
}
]
},
"5001":{
"table": "OMDB_LANE_LINK_LG",
"code": 5001,
"name": "车道中心线",
"zoomMin": 19,
"zoomMax": 22,
"5001":{
"table": "OMDB_LANE_LINK_LG",
"code": 5001,
"name": "车道中心线",
"zoomMin": 18,
"zoomMax": 21,
"transformer": [
{
"k": "geometry",
@ -333,42 +345,11 @@
"vlib": "generateAddWidthLine()"
}
]
},
},
"5002":{
"table": "OMDB_AREA",
"code": 5002,
"name": "面测试"
},
"3005":{
"table": "OMDB_TRAFFIC_SIGN",
"code": 3005,
"name": "交通标牌",
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "normalizationTrafficSignHeight()"
},{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateDirectReferenceLine('', 0.2)"
}
]
},
"3006":{
"table": "OMDB_POLE",
"code": 3006,
"name": "杆状物",
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "normalizationPoleHeight()"
}
]
}
}
}

View File

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

View File

@ -11,6 +11,7 @@ import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.navinfo.collect.library.data.entity.ReferenceEntity
import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.ImportConfig
import com.navinfo.omqs.hilt.OMDBDataBaseHiltFactory
@ -123,7 +124,7 @@ class ImportOMDBHelper @AssistedInject constructor(
* @param omdbZipFile omdb数据抽取生成的Zip文件
* @param configFile 对应的配置文件
* */
suspend fun importOmdbZipFile(omdbZipFile: File, taskId: Int): Flow<String> = withContext(Dispatchers.IO) {
suspend fun importOmdbZipFile(omdbZipFile: File, task: TaskBean): Flow<String> = withContext(Dispatchers.IO) {
val unZipFolder = File(omdbZipFile.parentFile, "result")
flow {
if (unZipFolder.exists()) {
@ -170,7 +171,7 @@ class ImportOMDBHelper @AssistedInject constructor(
renderEntity.code = map["qi_code"].toString().toInt()
renderEntity.name = map["qi_name"].toString()
renderEntity.table = map["qi_table"].toString()
renderEntity.taskId = taskId
renderEntity.taskId = task.id
renderEntity.zoomMin = map["qi_zoomMin"].toString().toInt()
renderEntity.zoomMax = map["qi_zoomMax"].toString().toInt()
@ -190,6 +191,19 @@ class ImportOMDBHelper @AssistedInject constructor(
else -> renderEntity.properties.put(key, value.toString())
}
}
//遍历判断只显示与任务Link相关的任务数据
if(renderEntity.properties.containsKey("linkPid")){
task.hadLinkDvoList.forEach{
if(it.linkPid==renderEntity.properties["linkPid"]){
renderEntity.visable = 1
Log.e("qj","${renderEntity.name}==包括任务link")
return@forEach
}
}
}else{
renderEntity.visable = 1
Log.e("qj","${renderEntity.name}==不包括任务linkPid")
}
listResult.add(renderEntity)
// 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity)

View File

@ -21,20 +21,26 @@ class ImportPreProcess {
val defaultTranslateDistance = 3.0
fun checkCircleRoad(renderEntity: RenderEntity): Boolean {
val linkInId = renderEntity.properties["linkIn"]
val linkOutId = renderEntity.properties["linkOut"]
val linkInId = renderEntity.properties["linkIn"]
val linkOutId = renderEntity.properties["linkOut"]
// 根据linkIn和linkOut获取对应的link数据
val linkInEntity = cacheRdLink[linkInId]
val linkOutEntity = cacheRdLink[linkOutId]
Log.d("checkCircleRoad", "LinkInEntity: ${linkInId}- ${linkInEntity?.properties?.get("snodePid")}LinkOutEntity: ${linkOutId}- ${linkOutEntity?.properties?.get("enodePid")}")
Log.d(
"checkCircleRoad",
"LinkInEntity: ${linkInId}- ${linkInEntity?.properties?.get("snodePid")}LinkOutEntity: ${linkOutId}- ${
linkOutEntity?.properties?.get("enodePid")
}"
)
// 查询linkIn的sNode和linkOut的eNode是否相同如果相同认为数据是环形路口返回false
if (linkInEntity!=null&&linkOutEntity!=null) {
if (linkInEntity.properties["snodePid"] == linkOutEntity.properties["enodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["snodePid"] || linkInEntity.properties["snodePid"] == linkOutEntity.properties["snodePid"]|| linkInEntity.properties["enodePid"] == linkOutEntity.properties["enodePid"]) {
if (linkInEntity != null && linkOutEntity != null) {
if (linkInEntity.properties["snodePid"] == linkOutEntity.properties["enodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["snodePid"] || linkInEntity.properties["snodePid"] == linkOutEntity.properties["snodePid"] || linkInEntity.properties["enodePid"] == linkOutEntity.properties["enodePid"]) {
return false
}
}
return true
}
/**
* 计算指定数据指定方向的坐标
* @param direction 判断当前数据是否为逆向给定的应该是一个a=b的表达式a为对应的properties的keyb为对应的值
@ -47,17 +53,20 @@ class ImportPreProcess {
var isReverse = false // 是否为逆向
if (direction.isNotEmpty()) {
val paramDirections = direction.split("=")
if (paramDirections.size>=2 && renderEntity.properties[paramDirections[0].trim()] == paramDirections[1].trim()) {
if (paramDirections.size >= 2 && renderEntity.properties[paramDirections[0].trim()] == paramDirections[1].trim()) {
isReverse = true;
}
}
if (Geometry.TYPENAME_POINT == geometry?.geometryType) { // angle为与正北方向的顺时针夹角
var angle = if(renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get("angle")?.toDouble()!!
var angle =
if (renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get(
"angle"
)?.toDouble()!!
// if (isReverse) {
// angle += 180
// }
// angle角度为与正北方向的顺时针夹角将其转换为与X轴正方向的逆时针夹角即为正东方向的夹角
angle=(450-angle)%360
angle = (450 - angle) % 360
radian = Math.toRadians(angle)
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
var coordinates = geometry.coordinates
@ -72,8 +81,14 @@ class ImportPreProcess {
}
// 计算偏移距离
val dx: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.cos(radian)
val dy: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.sin(radian)
val dx: Double = GeometryTools.convertDistanceToDegree(
defaultTranslateDistance,
geometry?.coordinate?.y!!
) * Math.cos(radian)
val dy: Double = GeometryTools.convertDistanceToDegree(
defaultTranslateDistance,
geometry?.coordinate?.y!!
) * Math.sin(radian)
// 计算偏移后的点
val coord =
@ -81,11 +96,13 @@ class ImportPreProcess {
// 记录偏移后的点位或线数据,如果数据为线时,记录的偏移后数据为倒数第二个点右移后,方向与线的最后两个点平行同向的单位向量
if (Geometry.TYPENAME_POINT == geometry?.geometryType) {
val geometryTranslate: Geometry = GeometryTools.createGeometry(doubleArrayOf(coord.x, coord.y))
val geometryTranslate: Geometry =
GeometryTools.createGeometry(doubleArrayOf(coord.x, coord.y))
renderEntity.geometry = geometryTranslate.toString()
} else {
val coorEnd = Coordinate(coord.x+dx, coord.y+dy)
val geometryTranslate: Geometry = GeometryTools.createLineString(arrayOf(coord, coorEnd))
val coorEnd = Coordinate(coord.x + dx, coord.y + dy)
val geometryTranslate: Geometry =
GeometryTools.createLineString(arrayOf(coord, coorEnd))
renderEntity.geometry = geometryTranslate.toString()
}
}
@ -99,19 +116,22 @@ class ImportPreProcess {
var isReverse = false // 是否为逆向
if (direction.isNotEmpty()) {
val paramDirections = direction.split("=")
if (paramDirections.size>=2 && renderEntity.properties[paramDirections[0].trim()] == paramDirections[1].trim()) {
if (paramDirections.size >= 2 && renderEntity.properties[paramDirections[0].trim()] == paramDirections[1].trim()) {
isReverse = true;
}
}
var radian = 0.0 // geometry的角度如果是点获取angle如果是线获取最后两个点的方向
var point = Coordinate(geometry?.coordinate)
if (Geometry.TYPENAME_POINT == geometry?.geometryType) {
var angle = if(renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get("angle")?.toDouble()!!
var angle =
if (renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get(
"angle"
)?.toDouble()!!
// if (isReverse) {
// angle += 180
// }
// angle角度为与正北方向的顺时针夹角将其转换为与X轴正方向的逆时针夹角即为正东方向的夹角
angle=(450-angle)%360
angle = (450 - angle) % 360
radian = Math.toRadians(angle)
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
var coordinates = geometry.coordinates
@ -126,15 +146,22 @@ class ImportPreProcess {
}
// 计算偏移距离
val dx: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.cos(radian)
val dy: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.sin(radian)
val dx: Double = GeometryTools.convertDistanceToDegree(
defaultTranslateDistance,
geometry?.coordinate?.y!!
) * Math.cos(radian)
val dy: Double = GeometryTools.convertDistanceToDegree(
defaultTranslateDistance,
geometry?.coordinate?.y!!
) * Math.sin(radian)
// 计算偏移后的点
val coord =
Coordinate(point.getX() - dx, point.getY() - dy)
// 将这个点记录在数据中
val geometryTranslate: Geometry = GeometryTools.createGeometry(doubleArrayOf(coord.x, coord.y))
val geometryTranslate: Geometry =
GeometryTools.createGeometry(doubleArrayOf(coord.x, coord.y))
renderEntity.geometry = geometryTranslate.toString()
}
@ -146,13 +173,17 @@ class ImportPreProcess {
val translateGeometry = renderEntity.wkt
val startGeometry = GeometryTools.createGeometry(renderEntity.properties["geometry"])
var pointEnd = translateGeometry!!.coordinates[translateGeometry.numPoints-1] // 获取这个geometry对应的结束点坐标
var pointStart = startGeometry!!.coordinates[startGeometry.numPoints-1] // 获取这个geometry对应的结束点坐标
var pointEnd =
translateGeometry!!.coordinates[translateGeometry.numPoints - 1] // 获取这个geometry对应的结束点坐标
var pointStart =
startGeometry!!.coordinates[startGeometry.numPoints - 1] // 获取这个geometry对应的结束点坐标
if (translateGeometry.geometryType == Geometry.TYPENAME_LINESTRING) { // 如果是线数据,则取倒数第二个点作为偏移的起止点
pointEnd = translateGeometry!!.coordinates[translateGeometry.numPoints-2] // 获取这个geometry对应的结束点坐标
pointEnd =
translateGeometry!!.coordinates[translateGeometry.numPoints - 2] // 获取这个geometry对应的结束点坐标
}
if (startGeometry.geometryType == Geometry.TYPENAME_LINESTRING) { // 如果是线数据,则取倒数第二个点作为偏移的起止点
pointStart = startGeometry!!.coordinates[startGeometry.numPoints-2] // 获取这个geometry对应的结束点坐标
pointStart =
startGeometry!!.coordinates[startGeometry.numPoints - 2] // 获取这个geometry对应的结束点坐标
}
// 将这个起终点的线记录在数据中
@ -163,60 +194,91 @@ class ImportPreProcess {
startEndReference.zoomMin = renderEntity.zoomMin
startEndReference.zoomMax = renderEntity.zoomMax
startEndReference.taskId = renderEntity.taskId
startEndReference.visable = renderEntity.visable
// 起终点坐标组成的线
startEndReference.geometry = GeometryTools.createLineString(arrayOf<Coordinate>(pointStart, pointEnd)).toString()
startEndReference.geometry =
GeometryTools.createLineString(arrayOf<Coordinate>(pointStart, pointEnd)).toString()
startEndReference.properties["qi_table"] = renderEntity.table
startEndReference.properties["type"] = "s_2_e"
Realm.getDefaultInstance().insert(startEndReference)
}
fun generateS2EReferencePoint(renderEntity: RenderEntity) {
fun generateS2EReferencePoint(
renderEntity: RenderEntity,
proKey: String = "",
table: String = ""
) {
val geometry = GeometryTools.createGeometry(renderEntity.properties["geometry"])
val pointEnd = geometry!!.coordinates[geometry.numPoints-1] // 获取这个geometry对应的结束点坐标
val pointEnd = geometry!!.coordinates[geometry.numPoints - 1] // 获取这个geometry对应的结束点坐标
val pointStart = geometry!!.coordinates[0] // 获取这个geometry对应的起点
// 将这个起终点的线记录在数据中
val startReference = ReferenceEntity()
startReference.renderEntityId = renderEntity.id
startReference.name = "${renderEntity.name}参考线"
startReference.name = "${renderEntity.name}参考"
startReference.table = renderEntity.table
startReference.zoomMin = renderEntity.zoomMin
startReference.zoomMax = renderEntity.zoomMax
startReference.taskId = renderEntity.taskId
startReference.visable = renderEntity.visable
// 起点坐标
startReference.geometry = GeometryTools.createGeometry(GeoPoint(pointStart.y,pointStart.x)).toString()
startReference.geometry =
GeometryTools.createGeometry(GeoPoint(pointStart.y, pointStart.x)).toString()
startReference.properties = renderEntity.properties
startReference.properties["qi_table"] = renderEntity.table
startReference.properties["type"] = "s_2_p"
Log.e("qj","generateS2EReferencePoint===$table===$proKey")
if (renderEntity.table == table) {
Log.e("qj","generateS2EReferencePoint===开始")
if (renderEntity.properties.containsKey(proKey)) {
startReference.properties["type"] = "s_2_p_${renderEntity.properties[proKey]}"
Log.e("qj","generateS2EReferencePoint===s_2_p_${renderEntity.properties[proKey]}")
}
} else {
startReference.properties["type"] = "s_2_p"
}
Realm.getDefaultInstance().insert(startReference)
val endReference = ReferenceEntity()
endReference.renderEntityId = renderEntity.id
endReference.name = "${renderEntity.name}参考线"
endReference.name = "${renderEntity.name}参考"
endReference.table = renderEntity.table
endReference.zoomMin = renderEntity.zoomMin
endReference.zoomMax = renderEntity.zoomMax
endReference.taskId = renderEntity.taskId
endReference.visable = renderEntity.visable
// 终点坐标
endReference.geometry = GeometryTools.createGeometry(GeoPoint(pointEnd.y,pointEnd.x)).toString()
endReference.geometry =
GeometryTools.createGeometry(GeoPoint(pointEnd.y, pointEnd.x)).toString()
endReference.properties = renderEntity.properties
endReference.properties["qi_table"] = renderEntity.table
endReference.properties["type"] = "e_2_p"
if (renderEntity.table == table) {
if (renderEntity.properties.containsKey(proKey)) {
endReference.properties["type"] = "e_2_p_${renderEntity.properties[proKey]}"
}
} else {
endReference.properties["type"] = "e_2_p"
}
Realm.getDefaultInstance().insert(endReference)
}
/**
* 生成与对应方向相同的方向线用以绘制方向箭头
* */
fun generateDirectReferenceLine(renderEntity: RenderEntity, direction: String = "", distance: String = "") {
fun generateDirectReferenceLine(
renderEntity: RenderEntity,
direction: String = "",
distance: String = ""
) {
// 根据数据或angle计算方向对应的角度和偏移量
val geometry = renderEntity.wkt
var isReverse = false // 是否为逆向
if (direction.isNotEmpty()) {
val paramDirections = direction.split("=")
if (paramDirections.size>=2 && renderEntity.properties[paramDirections[0].trim()] == paramDirections[1].trim()) {
if (paramDirections.size >= 2 && renderEntity.properties[paramDirections[0].trim()] == paramDirections[1].trim()) {
isReverse = true
}
}
@ -225,9 +287,12 @@ class ImportPreProcess {
if (Geometry.TYPENAME_POINT == geometry?.geometryType) {
val point = Coordinate(geometry?.coordinate)
pointStartArray.add(point)
var angle = if(renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get("angle")?.toDouble()!!
var angle =
if (renderEntity?.properties?.get("angle") == null) 0.0 else renderEntity?.properties?.get(
"angle"
)?.toDouble()!!
// angle角度为与正北方向的顺时针夹角将其转换为与X轴正方向的逆时针夹角即为正东方向的夹角
angle=(450-angle)%360
angle = (450 - angle) % 360
radian = Math.toRadians(angle)
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
var coordinates = geometry.coordinates
@ -243,7 +308,7 @@ class ImportPreProcess {
// 记录下面数据的每一个点位
pointStartArray.addAll(geometry.coordinates)
// 获取当前的面数据对应的方向信息
var angle = if(renderEntity?.properties?.get("angle") == null) {
var angle = if (renderEntity?.properties?.get("angle") == null) {
if (renderEntity?.properties?.get("heading") == null) {
0.0
} else {
@ -251,16 +316,28 @@ class ImportPreProcess {
}
} else renderEntity?.properties?.get("angle")?.toDouble()!!
angle=(450-angle)%360
angle = (450 - angle) % 360
radian = Math.toRadians(angle)
}
// 计算偏移距离
var dx: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.cos(radian)
var dy: Double = GeometryTools.convertDistanceToDegree(defaultTranslateDistance, geometry?.coordinate?.y!!) * Math.sin(radian)
var dx: Double = GeometryTools.convertDistanceToDegree(
defaultTranslateDistance,
geometry?.coordinate?.y!!
) * Math.cos(radian)
var dy: Double = GeometryTools.convertDistanceToDegree(
defaultTranslateDistance,
geometry?.coordinate?.y!!
) * Math.sin(radian)
if (distance.isNotEmpty()) {
dx = GeometryTools.convertDistanceToDegree(distance.toDouble(), geometry?.coordinate?.y!!) * Math.cos(radian)
dy = GeometryTools.convertDistanceToDegree(distance.toDouble(), geometry?.coordinate?.y!!) * Math.sin(radian)
dx = GeometryTools.convertDistanceToDegree(
distance.toDouble(),
geometry?.coordinate?.y!!
) * Math.cos(radian)
dy = GeometryTools.convertDistanceToDegree(
distance.toDouble(),
geometry?.coordinate?.y!!
) * Math.sin(radian)
}
for (pointStart in pointStartArray) {
@ -273,8 +350,10 @@ class ImportPreProcess {
angleReference.zoomMin = renderEntity.zoomMin
angleReference.zoomMax = renderEntity.zoomMax
angleReference.taskId = renderEntity.taskId
angleReference.visable = renderEntity.visable
// 与原有方向指向平行的线
angleReference.geometry = WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd)))
angleReference.geometry =
WKTWriter(3).write(GeometryTools.createLineString(arrayOf(pointStart, coorEnd)))
angleReference.properties["qi_table"] = renderEntity.table
angleReference.properties["type"] = "angle"
Realm.getDefaultInstance().insert(angleReference)
@ -284,10 +363,10 @@ class ImportPreProcess {
fun addAngleFromGeometry(renderEntity: RenderEntity): String {
if (!renderEntity.properties.containsKey("angle")) {
if (renderEntity.wkt!=null) {
if (renderEntity.wkt != null) {
val geometry = renderEntity.wkt
var angle: String = "90"
if (geometry?.numPoints!!>=2) {
if (geometry?.numPoints!! >= 2) {
val p1: Coordinate = geometry?.coordinates?.get(geometry.coordinates.size - 2)!!
val p2: Coordinate = geometry?.coordinates?.get(geometry.coordinates.size - 1)!!
// 弧度转角度
@ -307,16 +386,18 @@ class ImportPreProcess {
* 解析车道边线数据二级属性
* */
fun unpackingLaneBoundary(renderEntity: RenderEntity) {
var shape:JSONObject = JSONObject(mapOf(
"lateralOffset" to 0,
"markType" to 1,
"markColor" to 0,
"markMaterial" to 1,
"markSeqNum" to 1,
"markWidth" to 10,
"markingCount" to 1
))
if (renderEntity.code == 2013&&!renderEntity.properties["shapeList"].isNullOrEmpty()&&renderEntity.properties["shapeList"]!="null") {
var shape: JSONObject = JSONObject(
mapOf(
"lateralOffset" to 0,
"markType" to 1,
"markColor" to 0,
"markMaterial" to 1,
"markSeqNum" to 1,
"markWidth" to 10,
"markingCount" to 1
)
)
if (renderEntity.code == 2013 && !renderEntity.properties["shapeList"].isNullOrEmpty() && renderEntity.properties["shapeList"] != "null") {
// 解析shapeList将数组中的属性放会properties
val shapeList = JSONArray(renderEntity.properties["shapeList"])
for (i in 0 until shapeList.length()) {
@ -336,9 +417,12 @@ class ImportPreProcess {
* */
fun unpackingLaneInfo(renderEntity: RenderEntity) {
if (renderEntity.code == 4601) {
if (!renderEntity.properties["laneinfoGroup"].isNullOrEmpty()&&renderEntity.properties["laneinfoGroup"]!="null") {
if (!renderEntity.properties["laneinfoGroup"].isNullOrEmpty() && renderEntity.properties["laneinfoGroup"] != "null") {
// 解析laneinfoGroup将数组中的属性放会properties
val laneinfoGroup = JSONArray(renderEntity.properties["laneinfoGroup"].toString().replace("{", "[").replace("}", "]"))
val laneinfoGroup = JSONArray(
renderEntity.properties["laneinfoGroup"].toString().replace("{", "[")
.replace("}", "]")
)
// 分别获取两个数组中的数据,取第一个作为主数据,另外两个作为辅助渲染数据
val laneInfoDirectArray = JSONArray(laneinfoGroup[0].toString())
val laneInfoTypeArray = JSONArray(laneinfoGroup[1].toString())
@ -352,9 +436,12 @@ class ImportPreProcess {
// 与原数据使用相同的geometry
referenceEntity.geometry = renderEntity.geometry.toString()
referenceEntity.properties["qi_table"] = renderEntity.table
referenceEntity.properties["currentDirect"] = laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
referenceEntity.properties["currentType"] = laneInfoTypeArray[i].toString().split(",").distinct().joinToString("_")
referenceEntity.properties["symbol"] = "assets:omdb/4601/bus/1301_"+referenceEntity.properties["currentDirect"]+".svg"
referenceEntity.properties["currentDirect"] =
laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
referenceEntity.properties["currentType"] =
laneInfoTypeArray[i].toString().split(",").distinct().joinToString("_")
referenceEntity.properties["symbol"] =
"assets:omdb/4601/bus/1301_" + referenceEntity.properties["currentDirect"] + ".svg"
Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
Realm.getDefaultInstance().insert(referenceEntity)
}
@ -368,25 +455,27 @@ class ImportPreProcess {
* */
fun generateRoadName(renderEntity: RenderEntity) {
// LinkName的真正名称数据是保存在properties的shapeList中的因此需要解析shapeList数据
var shape :JSONObject? = null
var shape: JSONObject? = null
if (renderEntity.properties.containsKey("shapeList")) {
val shapeListJsonArray: JSONArray = JSONArray(renderEntity.properties["shapeList"])
for (i in 0 until shapeListJsonArray.length()) {
val shapeJSONObject = shapeListJsonArray.getJSONObject(i)
if (shapeJSONObject["nameClass"]==1) {
if (shapeJSONObject["nameClass"] == 1) {
if (shape == null) {
shape = shapeJSONObject
}
// 获取第一官方名
//("名称分类"NAME_CLASS =“1 官方名”且名称序号SEQ_NUM 最小者)
if (shapeJSONObject["seqNum"].toString().toInt()< shape!!["seqNum"].toString().toInt()) {
if (shapeJSONObject["seqNum"].toString().toInt() < shape!!["seqNum"].toString()
.toInt()
) {
shape = shapeJSONObject
}
}
}
}
// 获取最小的shape值将其记录增加记录在properties的name属性下
if(shape!=null) {
if (shape != null) {
renderEntity.properties["name"] = shape["name"].toString()
} else {
renderEntity.properties["name"] = ""
@ -398,9 +487,10 @@ class ImportPreProcess {
* */
fun generateElectronName(renderEntity: RenderEntity) {
// 解析电子眼的kind将其转换为渲染的简要名称
var shape :JSONObject? = null
var shape: JSONObject? = null
if (renderEntity.properties.containsKey("kind")) {
renderEntity.properties["name"] = code2NameMap.electronEyeKindMap[renderEntity.properties["kind"].toString().toInt()]
renderEntity.properties["name"] =
code2NameMap.electronEyeKindMap[renderEntity.properties["kind"].toString().toInt()]
} else {
renderEntity.properties["name"] = ""
}
@ -421,6 +511,7 @@ class ImportPreProcess {
angleReference.zoomMin = renderEntity.zoomMin
angleReference.zoomMax = renderEntity.zoomMax
angleReference.taskId = renderEntity.taskId
angleReference.visable = renderEntity.visable
Realm.getDefaultInstance().insert(angleReference)
}
@ -441,8 +532,10 @@ class ImportPreProcess {
intersectionReference.zoomMin = renderEntity.zoomMin
intersectionReference.zoomMax = renderEntity.zoomMax
intersectionReference.taskId = renderEntity.taskId
intersectionReference.visable = renderEntity.visable
// 与原有方向指向平行的线
intersectionReference.geometry = GeometryTools.createGeometry(nodeJSONObject["geometry"].toString()).toString()
intersectionReference.geometry =
GeometryTools.createGeometry(nodeJSONObject["geometry"].toString()).toString()
intersectionReference.properties["qi_table"] = renderEntity.table
intersectionReference.properties["type"] = "node"
Realm.getDefaultInstance().insert(intersectionReference)
@ -456,14 +549,14 @@ class ImportPreProcess {
fun normalizationPoleHeight(renderEntity: RenderEntity) {
// 获取杆状物的高程数据
val geometry = renderEntity.wkt
if (geometry!=null) {
var minHeight=Double.MAX_VALUE
var maxHeight=Double.MIN_VALUE
if (geometry != null) {
var minHeight = Double.MAX_VALUE
var maxHeight = Double.MIN_VALUE
for (coordinate in geometry.coordinates) {
if (coordinate.z<minHeight) {
if (coordinate.z < minHeight) {
minHeight = coordinate.z
}
if (coordinate.z>maxHeight) {
if (coordinate.z > maxHeight) {
maxHeight = coordinate.z
}
}
@ -475,7 +568,8 @@ class ImportPreProcess {
coordinate.z = 40.0
}
}
renderEntity.geometry = WKTWriter(3).write(GeometryTools.createLineString(geometry.coordinates))
renderEntity.geometry =
WKTWriter(3).write(GeometryTools.createLineString(geometry.coordinates))
}
}
@ -485,24 +579,25 @@ class ImportPreProcess {
fun normalizationTrafficSignHeight(renderEntity: RenderEntity) {
// 获取交通标牌的高程数据
val geometry = renderEntity.wkt
if (geometry!=null) {
if (geometry != null) {
// 获取所有的高程信息,计算高程的中位数,方便对高程做定制化处理
var midHeight=0.0
var midHeight = 0.0
var countHeight = 0.0
for (coordinate in geometry.coordinates) {
countHeight+=coordinate.z
countHeight += coordinate.z
}
midHeight = countHeight/geometry.coordinates.size
midHeight = countHeight / geometry.coordinates.size
// 对高程数据做特殊处理
for (coordinate in geometry.coordinates) {
if (coordinate.z>=midHeight) {
if (coordinate.z >= midHeight) {
coordinate.z = 40.0
} else {
coordinate.z = 30.0
}
}
renderEntity.geometry = WKTWriter(3).write(GeometryTools.getPolygonGeometry(geometry.coordinates))
renderEntity.geometry =
WKTWriter(3).write(GeometryTools.getPolygonGeometry(geometry.coordinates))
}
}
}

View File

@ -77,7 +77,7 @@ class TaskDownloadScope(
downloadJob = launch() {
FileManager.checkOMDBFileInfo(taskBean)
if (taskBean.status == FileDownloadStatus.IMPORT) {
importData(taskId = taskBean.id)
importData(task = taskBean)
} else {
download()
}
@ -127,7 +127,7 @@ class TaskDownloadScope(
/**
* 导入数据
*/
private suspend fun importData(file: File? = null, taskId: Int? = 0) {
private suspend fun importData(file: File? = null, task: TaskBean? = null) {
try {
Log.e("jingo", "importData SSS")
change(FileDownloadStatus.IMPORTING)
@ -138,8 +138,8 @@ class TaskDownloadScope(
downloadManager.context,
fileNew
)
if (taskId != null) {
importOMDBHelper.importOmdbZipFile(importOMDBHelper.omdbFile, taskId).collect {
if (task != null) {
importOMDBHelper.importOmdbZipFile(importOMDBHelper.omdbFile, task).collect {
Log.e("jingo", "数据安装 $it")
if (it == "finish") {
change(FileDownloadStatus.DONE)
@ -187,7 +187,7 @@ class TaskDownloadScope(
startPosition = 0
}
if (fileTemp.length() > 0 && taskBean.fileSize > 0 && fileTemp.length() == taskBean.fileSize) {
importData(fileTemp, taskBean.id)
importData(fileTemp, taskBean)
return
}
@ -228,7 +228,7 @@ class TaskDownloadScope(
randomAccessFile?.close()
inputStream = null
randomAccessFile = null
importData(taskId = taskBean.id)
importData(task = taskBean)
} else {
change(FileDownloadStatus.PAUSE)
}

View File

@ -406,7 +406,7 @@ class MainActivity : BaseActivity() {
this
).setTitle("坐标定位").setView(view)
val editText = view.findViewById<EditText>(R.id.dialog_edittext)
editText.hint = "请输入经纬度例如:\n116.1234567,39.1234567\n116.1234567 39.1234567"
editText.hint = "请输入经纬度例如:116.1234567,39.1234567"
inputDialog.setNegativeButton("取消") { dialog, _ ->
dialog.dismiss()
}
@ -505,7 +505,7 @@ class MainActivity : BaseActivity() {
* 点击搜索
*/
fun onClickSearch() {
jumpPosition()
}
/**

View File

@ -15,7 +15,6 @@ import com.blankj.utilcode.util.UriUtils
import com.github.k1rakishou.fsaf.FileChooser
import com.github.k1rakishou.fsaf.callback.FSAFActivityCallbacks
import com.github.k1rakishou.fsaf.callback.FileChooserCallback
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.Constant
import com.navinfo.omqs.R
@ -23,10 +22,8 @@ import com.navinfo.omqs.databinding.FragmentPersonalCenterBinding
import com.navinfo.omqs.db.ImportOMDBHelper
import com.navinfo.omqs.hilt.ImportOMDBHiltFactory
import com.navinfo.omqs.tools.CoroutineUtils
import com.navinfo.omqs.ui.activity.map.MainActivity
import com.navinfo.omqs.ui.fragment.BaseFragment
import com.navinfo.omqs.ui.activity.scan.QrCodeActivity
import com.navinfo.omqs.ui.fragment.console.ConsoleFragment
import com.permissionx.guolindev.PermissionX
import dagger.hilt.android.AndroidEntryPoint
import org.oscim.core.GeoPoint

View File

@ -162,11 +162,11 @@ class PersonalCenterViewModel @Inject constructor(
/**
* 导入OMDB数据
* */
fun importOMDBData(importOMDBHelper: ImportOMDBHelper,taskId:Int?=0) {
fun importOMDBData(importOMDBHelper: ImportOMDBHelper, task: TaskBean? =null) {
viewModelScope.launch(Dispatchers.IO) {
Log.d("OMQSApplication", "开始导入数据")
if (taskId != null) {
importOMDBHelper.importOmdbZipFile(importOMDBHelper.omdbFile, taskId).collect {
if (task != null) {
importOMDBHelper.importOmdbZipFile(importOMDBHelper.omdbFile, task).collect {
Log.d("importOMDBData", it)
}
}

View File

@ -11,7 +11,7 @@
android:layout_margin="8dp"
android:background="@drawable/shape_rect_white_2dp_bg"
android:hint="请备注无需作业原因"
android:lines="5"
android:lines="4"
android:textSize="13dp" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1966,7 +1966,7 @@
<!--车道中心线-->
<m v="OMDB_LANE_LINK_LG">
<m k="width" v="~">
<line stroke="#7A88A0" width="3.8" />
<line stroke="#7A88A0" width="2.8" />
</m>
</m>
@ -1985,6 +1985,38 @@
</m>
</m>
<!---->
<m v="OMDB_BRIDGE">
<m k="bridgeType" v="1|2|3">
<line stroke="#335431B2" width="1" />
<lineSymbol repeat-gap="24" repeat-start="0" symbol-height="24" src="assets:omdb/icon_2201_1.svg" />
</m>
<m k="type" v="s_2_p_1">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_1_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_1">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_1_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="s_2_p_2">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_2_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_2">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_2_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="s_2_p_3">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_3_1.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
<m k="type" v="e_2_p_3">
<symbol repeat="false" repeat-start="0" rotate="false"
src="assets:omdb/icon_2201_3_2.svg" symbol-height="56" symbol-width="56"></symbol>
</m>
</m>
<!-- 检查点 -->
<m v="OMDB_CHECKPOINT">
<symbol src="assets:omdb/icon_1012_0.svg" symbol-height="56"

View File

@ -1,2 +1,17 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1657094405338" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="32402" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M517.12 944.64c-236.11392 0-427.52-191.40608-427.52-427.52 0-236.11392 191.40608-427.52 427.52-427.52 236.11392 0 427.52 191.40608 427.52 427.52C944.64 753.23392 753.23392 944.64 517.12 944.64zM517.12 143.04256c-206.59712 0-374.08256 167.48544-374.08256 374.08256S310.52288 891.20256 517.12 891.20256c206.60224 0 374.08256-167.48544 374.08256-374.08256S723.72224 143.04256 517.12 143.04256zM555.06432 517.26848l113.2032 113.2032c10.42432 10.42944 10.42432 27.3664 0 37.79584-10.43456 10.42944-27.35104 10.42944-37.79584 0l-113.2032-113.20832-113.99168 113.9712c-10.51648 10.5216-27.5712 10.5216-38.07744 0-10.51648-10.5216-10.51648-27.5712 0-38.07744l113.98144-113.98144L365.97248 403.75296c-10.43456-10.42944-10.43456-27.35104 0-37.78048 10.43456-10.43968 27.34592-10.43968 37.79072 0l113.21344 113.20832 114.82112-114.82112c10.51648-10.5216 27.5712-10.5216 38.08256 0 10.51648 10.51136 10.51648 27.5712 0 38.08256L555.06432 517.26848z" p-id="32403"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg t="1657094405338" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="32402" width="128" height="128"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style type="text/css">@font-face { font-family: feedback-iconfont; src:
url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"),
url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"),
url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype");
}
</style>
</defs>
<path
d="M517.12 944.64c-236.11392 0-427.52-191.40608-427.52-427.52 0-236.11392 191.40608-427.52 427.52-427.52 236.11392 0 427.52 191.40608 427.52 427.52C944.64 753.23392 753.23392 944.64 517.12 944.64zM517.12 143.04256c-206.59712 0-374.08256 167.48544-374.08256 374.08256S310.52288 891.20256 517.12 891.20256c206.60224 0 374.08256-167.48544 374.08256-374.08256S723.72224 143.04256 517.12 143.04256zM555.06432 517.26848l113.2032 113.2032c10.42432 10.42944 10.42432 27.3664 0 37.79584-10.43456 10.42944-27.35104 10.42944-37.79584 0l-113.2032-113.20832-113.99168 113.9712c-10.51648 10.5216-27.5712 10.5216-38.07744 0-10.51648-10.5216-10.51648-27.5712 0-38.07744l113.98144-113.98144L365.97248 403.75296c-10.43456-10.42944-10.43456-27.35104 0-37.78048 10.43456-10.43968 27.34592-10.43968 37.79072 0l113.21344 113.20832 114.82112-114.82112c10.51648-10.5216 27.5712-10.5216 38.08256 0 10.51648 10.51136 10.51648 27.5712 0 38.08256L555.06432 517.26848z"
p-id="32403"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 27.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 168 76" style="enable-background:new 0 0 168 76;" xml:space="preserve">
<style type="text/css">
.st0{opacity:0.2;fill:none;enable-background:new ;}
.st1{fill:#5B57C1;}
.st2{fill:#C18557;}
</style>
<g transform="translate(-153 -1049)">
<g transform="translate(0 51)">
<rect x="153" y="998" class="st0" width="168" height="76"/>
<rect x="153" y="1008" class="st1" width="168" height="12"/>
<rect x="153" y="1052" class="st1" width="168" height="12"/>
<rect x="175.5" y="1008" class="st2" width="6" height="56"/>
<rect x="156" y="1008" class="st2" width="6" height="56"/>
<rect x="195" y="1008" class="st2" width="6" height="56"/>
<rect x="253.5" y="1008" class="st2" width="6" height="56"/>
<rect x="234" y="1008" class="st2" width="6" height="56"/>
<rect x="214.5" y="1008" class="st2" width="6" height="56"/>
<rect x="273" y="1008" class="st2" width="6" height="56"/>
<rect x="312" y="1008" class="st2" width="6" height="56"/>
<rect x="292.5" y="1008" class="st2" width="6" height="56"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="19" height="77" viewBox="0 0 19 77"><defs><style>.a{fill:#c18557;}.b{fill:#5b57c1;}</style></defs><g transform="translate(3)"><rect class="a" width="6" height="66" transform="translate(3 5)"/><rect class="b" width="19" height="10" transform="translate(-3)"/><rect class="b" width="19" height="10" transform="translate(-3 67)"/></g></svg>

After

Width:  |  Height:  |  Size: 384 B

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="b" xmlns="http://www.w3.org/2000/svg" width="124.7" height="124.9"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 124.7 124.9">
<defs>
<style>
.j{fill:url(#f);}.k{fill:#fff;}.l,.m{fill:#535a60;}.n{fill:#262d34;isolation:isolate;opacity:.2;}.o{fill:#006a17;stroke:#003a0b;}.o,.p{stroke-miterlimit:10;}.m{opacity:0;}.p{fill:url(#g);stroke:#8b9fae;stroke-width:1.4px;}
</style>
<linearGradient id="f" x1="60.1" y1="51.1" x2="64.9" y2="51.1"
gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#989898" />
<stop offset="0" stop-color="#a3a3a3" />
<stop offset=".1" stop-color="#c4c5c5" />
<stop offset=".2" stop-color="#d8d9d9" />
<stop offset=".3" stop-color="#e0e1e1" />
<stop offset=".4" stop-color="#dbdcdc" />
<stop offset=".5" stop-color="#cccece" />
<stop offset=".6" stop-color="#b5b6b7" />
<stop offset=".7" stop-color="#949697" />
<stop offset=".8" stop-color="#6a6c6f" />
<stop offset=".8" stop-color="#3f4246" />
<stop offset="1" stop-color="#404247" />
<stop offset="1" stop-color="#43434a" />
</linearGradient>
<linearGradient id="g" x1="20.8" y1="24" x2="103.9" y2="24" 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="m" y=".1" width="124.7" height="124.7" />
<ellipse id="d" class="n" cx="62.4" cy="62.5" rx="14.4" ry="3.7" />
<ellipse id="e" class="l" cx="62.4" cy="62.5" rx="7.5" ry="3" />
<path class="j"
d="M62.4,39h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" />
<rect class="p" x="20.8" y=".7" width="83.1" height="46.6" rx="14.4" ry="14.4" />
<rect class="o" x="21.7" y="2.8" width="81.3" height="44" rx="14.1" ry="14.1" />
<path id="h" class="k"
d="M27.8,10.8c-.3,0-.6-.2-.7-.4s0-.6,.1-.8c1.3-1.6,3-2.9,4.8-3.9,.2,0,.4-.1,.6,0,.2,0,.4,.2,.5,.4,.2,.4,0,.9-.3,1.1-1.7,.9-3.1,2.1-4.3,3.5-.2,.2-.4,.3-.6,.3h0Zm-1.8,2.6c-.1,0-.3,0-.4-.1-.2-.1-.3-.3-.4-.5,0-.2,0-.4,.1-.6l.3-.4c.1-.2,.3-.3,.5-.4,.2,0,.4,0,.6,0,.2,.1,.3,.3,.4,.5s0,.4-.1,.6l-.3,.4c-.1,.2-.4,.4-.7,.4h0Z" />
<g>
<path class="k"
d="M51.8,26.8v15.4h-14.3v-15.4h14.3Zm-2.2,2h-10v11.3h10v-11.3Zm-6,3.7h-3.4v-2h3.4v-1.2h2.1v1.2h3.4v2h-3.4v1.2h2.6v5.3h-7.2v-5.3h2.6v-1.2Zm2.7,3h-3.3v1.8h3.3v-1.8Z" />
<path class="k"
d="M63.8,40c2.2,0,4.4,0,6.6,0l-.6,2.1c-2,.1-4.3,.1-6.4,0-2.3,0-4.1-.8-5.3-2.3-.6,1.1-1.3,2-2.2,3l-1.8-1.5c2-2.1,2.8-3.5,3.1-6.6l2.2,.2c0,1-.3,1.9-.5,2.7,.7,1.1,1.5,1.7,2.6,2.1v-5.9h-5.8v-2.1h13.3v2.1h-5.3v1.9h4.8v2.1h-4.8v2.3Zm-6.4-8.8h-2.2v-3.4h6.2l-.3-1.5h2.3c0,0,.3,1.5,.3,1.5h5.9v3.4h-2.1v-1.4h-10.1v1.4Z" />
<path class="k"
d="M77.2,35.4c-.3-.3-.6-.7-.8-1v8.1h-2v-7c-.5,1.1-1,2.1-1.6,2.9l-1.2-1.9c.9-1.3,2-3.4,2.7-5.3h-1.7v-2.1h1.8v-2.8h2v2.8h1.6v2.1h-1.6v1.2l.4-.4c.6,.5,1.3,1.3,1.9,1.9l-1.4,1.4Zm10.4,2.4c-.7-.4-1.4-.8-2-1.2v5.6h-2.1v-6.7h.9c-.7-.7-1.3-1.5-1.8-2.4-.4,.9-1,1.7-1.8,2.5h.8v1.4c0,2.7-.6,4.1-2.9,5.9l-1.5-1.5c2-1.7,2.3-2.2,2.3-4.4v-.2c-.5,.4-1,.7-1.6,1.1l-1.3-1.7c1.8-1.1,2.9-2,3.6-3.2h-2v-2.1h2.9c.1-.5,.3-1,.3-1.7-1,0-2,.1-2.8,.2l-.2-2.1c2.6-.1,6.2-.5,8.4-.9l.2,2.1c-.9,.1-2.1,.3-3.3,.4,0,.6-.2,1.3-.3,1.9h4.4v2.1h-2.9c.9,1.2,2.1,1.9,3.8,2.8l-1,2.1Z" />
</g>
<path id="i" class="k"
d="M73.2,11.9h-21.7l-4.9-6.2,1.7-1.3,4.3,5.4h19.7l4.3-5.4,1.7,1.3-4.9,6.2Zm3.2,10.5l-4.3-5.9h-19.6l-4.3,5.7-1.7-1.3,4.9-6.5h21.8l4.9,6.7-1.7,1.3Z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="b" xmlns="http://www.w3.org/2000/svg" width="124.7" height="124.9"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 124.7 124.9">
<defs>
<style>
.j{fill:url(#f);}.k{fill:#fff;}.l,.m{fill:#535a60;}.n{fill:#262d34;isolation:isolate;opacity:.2;}.o{fill:#d82e00;stroke:#8a1c21;}.o,.p{stroke-miterlimit:10;}.m{opacity:0;}.p{fill:url(#g);stroke:#8b9fae;stroke-width:1.4px;}
</style>
<linearGradient id="f" x1="60.1" y1="51.1" x2="64.9" y2="51.1"
gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#989898" />
<stop offset="0" stop-color="#a3a3a3" />
<stop offset=".1" stop-color="#c4c5c5" />
<stop offset=".2" stop-color="#d8d9d9" />
<stop offset=".3" stop-color="#e0e1e1" />
<stop offset=".4" stop-color="#dbdcdc" />
<stop offset=".5" stop-color="#cccece" />
<stop offset=".6" stop-color="#b5b6b7" />
<stop offset=".7" stop-color="#949697" />
<stop offset=".8" stop-color="#6a6c6f" />
<stop offset=".8" stop-color="#3f4246" />
<stop offset="1" stop-color="#404247" />
<stop offset="1" stop-color="#43434a" />
</linearGradient>
<linearGradient id="g" x1="20.8" y1="24" x2="103.9" y2="24" 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="m" y=".1" width="124.7" height="124.7" />
<ellipse id="d" class="n" cx="62.4" cy="62.5" rx="14.4" ry="3.7" />
<ellipse id="e" class="l" cx="62.4" cy="62.5" rx="7.5" ry="3" />
<path class="j"
d="M62.4,39h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" />
<rect class="p" x="20.8" y=".7" width="83.1" height="46.6" rx="14.4" ry="14.4" />
<rect class="o" x="21.7" y="2.8" width="81.3" height="44" rx="14.1" ry="14.1" />
<path id="h" class="k"
d="M27.8,10.8c-.3,0-.6-.2-.7-.4s0-.6,.1-.8c1.3-1.6,3-2.9,4.8-3.9,.2,0,.4-.1,.6,0,.2,0,.4,.2,.5,.4,.2,.4,0,.9-.3,1.1-1.7,.9-3.1,2.1-4.3,3.5-.2,.2-.4,.3-.6,.3h0Zm-1.8,2.6c-.1,0-.3,0-.4-.1-.2-.1-.3-.3-.4-.5,0-.2,0-.4,.1-.6l.3-.4c.1-.2,.3-.3,.5-.4,.2,0,.4,0,.6,0,.2,.1,.3,.3,.4,.5s0,.4-.1,.6l-.3,.4c-.1,.2-.4,.4-.7,.4h0Z" />
<g>
<path class="k"
d="M51.8,26.8v15.4h-14.3v-15.4h14.3Zm-2.2,2h-10v11.3h10v-11.3Zm-6,3.7h-3.4v-2h3.4v-1.2h2.1v1.2h3.4v2h-3.4v1.2h2.6v5.3h-7.2v-5.3h2.6v-1.2Zm2.7,3h-3.3v1.8h3.3v-1.8Z" />
<path class="k"
d="M63.8,40c2.2,0,4.4,0,6.6,0l-.6,2.1c-2,.1-4.3,.1-6.4,0-2.3,0-4.1-.8-5.3-2.3-.6,1.1-1.3,2-2.2,3l-1.8-1.5c2-2.1,2.8-3.5,3.1-6.6l2.2,.2c0,1-.3,1.9-.5,2.7,.7,1.1,1.5,1.7,2.6,2.1v-5.9h-5.8v-2.1h13.3v2.1h-5.3v1.9h4.8v2.1h-4.8v2.3Zm-6.4-8.8h-2.2v-3.4h6.2l-.3-1.5h2.3c0,0,.3,1.5,.3,1.5h5.9v3.4h-2.1v-1.4h-10.1v1.4Z" />
<path class="k"
d="M77.2,35.4c-.3-.3-.6-.7-.8-1v8.1h-2v-7c-.5,1.1-1,2.1-1.6,2.9l-1.2-1.9c.9-1.3,2-3.4,2.7-5.3h-1.7v-2.1h1.8v-2.8h2v2.8h1.6v2.1h-1.6v1.2l.4-.4c.6,.5,1.3,1.3,1.9,1.9l-1.4,1.4Zm10.4,2.4c-.7-.4-1.4-.8-2-1.2v5.6h-2.1v-6.7h.9c-.7-.7-1.3-1.5-1.8-2.4-.4,.9-1,1.7-1.8,2.5h.8v1.4c0,2.7-.6,4.1-2.9,5.9l-1.5-1.5c2-1.7,2.3-2.2,2.3-4.4v-.2c-.5,.4-1,.7-1.6,1.1l-1.3-1.7c1.8-1.1,2.9-2,3.6-3.2h-2v-2.1h2.9c.1-.5,.3-1,.3-1.7-1,0-2,.1-2.8,.2l-.2-2.1c2.6-.1,6.2-.5,8.4-.9l.2,2.1c-.9,.1-2.1,.3-3.3,.4,0,.6-.2,1.3-.3,1.9h4.4v2.1h-2.9c.9,1.2,2.1,1.9,3.8,2.8l-1,2.1Z" />
</g>
<path id="i" class="k"
d="M73.2,11.9h-21.7l-4.9-6.2,1.7-1.3,4.3,5.4h19.7l4.3-5.4,1.7,1.3-4.9,6.2Zm3.2,10.5l-4.3-5.9h-19.6l-4.3,5.7-1.7-1.3,4.9-6.5h21.8l4.9,6.7-1.7,1.3Z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="b" xmlns="http://www.w3.org/2000/svg" width="124.7" height="125.7"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 124.7 125.7">
<defs>
<style>
.j{fill:url(#f);}.k{fill:#fff;}.l,.m{fill:#535a60;}.n{fill:#262d34;isolation:isolate;opacity:.2;}.o{fill:#006a17;stroke:#003a0b;}.o,.p{stroke-miterlimit:10;}.m{opacity:0;}.p{fill:url(#g);stroke:#8b9fae;stroke-width:1.4px;}
</style>
<linearGradient id="f" x1="60.1" y1="51.1" x2="64.9" y2="51.1"
gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#989898" />
<stop offset="0" stop-color="#a3a3a3" />
<stop offset=".1" stop-color="#c4c5c5" />
<stop offset=".2" stop-color="#d8d9d9" />
<stop offset=".3" stop-color="#e0e1e1" />
<stop offset=".4" stop-color="#dbdcdc" />
<stop offset=".5" stop-color="#cccece" />
<stop offset=".6" stop-color="#b5b6b7" />
<stop offset=".7" stop-color="#949697" />
<stop offset=".8" stop-color="#6a6c6f" />
<stop offset=".8" stop-color="#3f4246" />
<stop offset="1" stop-color="#404247" />
<stop offset="1" stop-color="#43434a" />
</linearGradient>
<linearGradient id="g" x1="20.8" y1="24" x2="103.9" y2="24" 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="m" y=".9" width="124.7" height="124.7" />
<ellipse id="d" class="n" cx="62.4" cy="62.5" rx="14.4" ry="3.7" />
<ellipse id="e" class="l" cx="62.4" cy="62.5" rx="7.5" ry="3" />
<path class="j"
d="M62.4,39h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" />
<rect class="p" x="20.8" y=".7" width="83.1" height="46.6" rx="14.4" ry="14.4" />
<rect class="o" x="21.7" y="2.8" width="81.3" height="44" rx="14.1" ry="14.1" />
<path id="h" class="k"
d="M30.4,10.7c-.3,0-.6-.2-.7-.4s0-.6,.1-.8c1.3-1.6,3-2.9,4.8-3.9,.2,0,.4-.1,.6,0,.2,0,.4,.2,.5,.4,.2,.4,0,.9-.3,1.1-1.7,.9-3.1,2.1-4.3,3.5-.2,.2-.4,.3-.6,.3h0Zm-1.8,2.6c-.1,0-.3,0-.4-.1-.2-.1-.3-.3-.4-.5,0-.2,0-.4,.1-.6l.3-.4c.1-.2,.3-.3,.5-.4,.2,0,.4,0,.6,0,.2,.1,.3,.3,.4,.5s0,.4-.1,.6l-.3,.4c-.1,.2-.4,.4-.7,.4h0Z" />
<g>
<path class="k"
d="M41.8,37.4c-.2-.4-.5-.9-.8-1.5v6.4h-1.9v-5.7c-.5,1-1,2-1.6,2.8l-1.4-1.6c.9-1.2,1.9-3,2.7-4.8h-1.9v-2h2.1v-1.6c-.7,.1-1.3,.2-1.8,.3l-.2-2c1.6-.2,3.9-.6,5.5-1.1l.4,2c-.6,.2-1.2,.3-1.9,.5v2h1.7v2h-1.7v1l.7-.5c.4,.5,1.2,1.7,1.6,2.5l-1.5,1.3Zm10.7-3.2v1.9c-1.8,2.5-4.3,4.7-9.9,6.6l-1-1.7c4.9-1.4,6.8-2.8,8.4-4.8h-3.4l-.5,.5c.5,.4,.9,.8,1.3,1.2l-1.4,1.4-1.3-1.3c-.6,.5-1.1,.9-1.7,1.3l-1.2-1.5c1.8-1.1,3.1-2.3,4.2-3.6-.8,.3-1.6,.7-2.6,1l-.9-1.8c3.2-1,5.5-2.2,7.1-3.8h-3.6c0,.1-.2,.2-.3,.3,.4,.3,.7,.6,1.2,.9l-1.4,1.3c-.4-.3-.7-.7-1-1-.3,.3-.6,.5-.9,.8l-1.2-1.6c1.8-1.2,3-2.8,3.9-4.1l2,.4c-.2,.3-.4,.7-.6,1h4.6v1.9c-1.2,1.5-2.5,2.6-4.4,3.7l.9,.3-.4,.6h4.3Z" />
<path class="k"
d="M69.6,29.3l-.3,10.8c0,1.5-.7,1.9-2.2,2.1l-1.5,.2-.7-2.2h1.4c.5-.2,.7-.3,.8-1.3,.1-2.3,.2-5.6,.3-7.5h-1.5c0,.2,0,.3,0,.5-.1,3.8,.4,7.1-3.1,10.9l-1.9-1.2c.5-.5,.9-1,1.3-1.4l-1.1,.6-.3-.7c-1.8,.3-3.5,.6-4.8,.8-.2,0-.4,0-.6,.1l-.6-2.2c.5-.2,.6-.5,.7-.8,.3-.4,1.1-2.1,1.6-4.1h-2.3v-2.2h7.4v2.2h-2.8c-.5,1.6-1.3,3.6-1.7,4.5,.8-.1,1.5-.2,2.4-.4-.3-.8-.6-1.6-.9-2.2l1.9-.8c.6,1.2,1.1,2.5,1.7,4.2,1-1.9,.9-3.9,1-7,0-.2,0-.4,0-.6h-1.6v-2.2h1.6v-2.8s2.2,.1,2.2,.1v.8c0,.5,0,1.2,0,1.9h3.7Zm-8,.2h-6v-2.2h6v2.2Z" />
<path class="k"
d="M77.2,35.4c-.3-.3-.6-.7-.8-1v8.1h-2v-7c-.5,1.1-1,2.1-1.6,2.9l-1.2-1.9c.9-1.3,2-3.4,2.7-5.3h-1.7v-2.1h1.8v-2.8h2v2.8h1.6v2.1h-1.6v1.2l.4-.4c.6,.5,1.3,1.3,1.9,1.9l-1.4,1.4Zm10.4,2.4c-.7-.4-1.4-.8-2-1.2v5.6h-2.1v-6.7h.9c-.7-.7-1.3-1.5-1.8-2.4-.4,.9-1,1.7-1.8,2.5h.8v1.4c0,2.7-.6,4.1-2.9,5.9l-1.5-1.5c2-1.7,2.3-2.2,2.3-4.4v-.2c-.5,.4-1,.7-1.6,1.1l-1.3-1.7c1.8-1.1,2.9-2,3.6-3.2h-2v-2.1h2.9c.1-.5,.3-1,.3-1.7-1,0-2,.1-2.8,.2l-.2-2.1c2.6-.1,6.2-.5,8.4-.9l.2,2.1c-.9,.1-2.1,.3-3.3,.4,0,.6-.2,1.3-.3,1.9h4.4v2.1h-2.9c.9,1.2,2.1,1.9,3.8,2.8l-1,2.1Z" />
</g>
<path id="i" class="k"
d="M75.9,11.7h-21.7l-4.9-6.2,1.7-1.3,4.3,5.4h19.7l4.3-5.4,1.7,1.3-4.9,6.2Zm3.2,10.5l-4.3-5.9h-19.6l-4.3,5.7-1.7-1.3,4.9-6.5h21.8l4.9,6.7-1.7,1.3Z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="b" xmlns="http://www.w3.org/2000/svg" width="124.7" height="125.7"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 124.7 125.7">
<defs>
<style>
.j{fill:url(#f);}.k{fill:#fff;}.l,.m{fill:#535a60;}.n{fill:#262d34;isolation:isolate;opacity:.2;}.o{fill:#d82e00;stroke:#8a1c21;}.o,.p{stroke-miterlimit:10;}.m{opacity:0;}.p{fill:url(#g);stroke:#8b9fae;stroke-width:1.4px;}
</style>
<linearGradient id="f" x1="60.1" y1="51.1" x2="64.9" y2="51.1"
gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#989898" />
<stop offset="0" stop-color="#a3a3a3" />
<stop offset=".1" stop-color="#c4c5c5" />
<stop offset=".2" stop-color="#d8d9d9" />
<stop offset=".3" stop-color="#e0e1e1" />
<stop offset=".4" stop-color="#dbdcdc" />
<stop offset=".5" stop-color="#cccece" />
<stop offset=".6" stop-color="#b5b6b7" />
<stop offset=".7" stop-color="#949697" />
<stop offset=".8" stop-color="#6a6c6f" />
<stop offset=".8" stop-color="#3f4246" />
<stop offset="1" stop-color="#404247" />
<stop offset="1" stop-color="#43434a" />
</linearGradient>
<linearGradient id="g" x1="20.8" y1="24" x2="103.9" y2="24" 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="m" y=".9" width="124.7" height="124.7" />
<ellipse id="d" class="n" cx="62.4" cy="62.5" rx="14.4" ry="3.7" />
<ellipse id="e" class="l" cx="62.4" cy="62.5" rx="7.5" ry="3" />
<path class="j"
d="M62.4,39h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" />
<rect class="p" x="20.8" y=".7" width="83.1" height="46.6" rx="14.4" ry="14.4" />
<rect class="o" x="21.7" y="2.8" width="81.3" height="44" rx="14.1" ry="14.1" />
<path id="h" class="k"
d="M30.4,10.7c-.3,0-.6-.2-.7-.4s0-.6,.1-.8c1.3-1.6,3-2.9,4.8-3.9,.2,0,.4-.1,.6,0,.2,0,.4,.2,.5,.4,.2,.4,0,.9-.3,1.1-1.7,.9-3.1,2.1-4.3,3.5-.2,.2-.4,.3-.6,.3h0Zm-1.8,2.6c-.1,0-.3,0-.4-.1-.2-.1-.3-.3-.4-.5,0-.2,0-.4,.1-.6l.3-.4c.1-.2,.3-.3,.5-.4,.2,0,.4,0,.6,0,.2,.1,.3,.3,.4,.5s0,.4-.1,.6l-.3,.4c-.1,.2-.4,.4-.7,.4h0Z" />
<g>
<path class="k"
d="M41.8,37.4c-.2-.4-.5-.9-.8-1.5v6.4h-1.9v-5.7c-.5,1-1,2-1.6,2.8l-1.4-1.6c.9-1.2,1.9-3,2.7-4.8h-1.9v-2h2.1v-1.6c-.7,.1-1.3,.2-1.8,.3l-.2-2c1.6-.2,3.9-.6,5.5-1.1l.4,2c-.6,.2-1.2,.3-1.9,.5v2h1.7v2h-1.7v1l.7-.5c.4,.5,1.2,1.7,1.6,2.5l-1.5,1.3Zm10.7-3.2v1.9c-1.8,2.5-4.3,4.7-9.9,6.6l-1-1.7c4.9-1.4,6.8-2.8,8.4-4.8h-3.4l-.5,.5c.5,.4,.9,.8,1.3,1.2l-1.4,1.4-1.3-1.3c-.6,.5-1.1,.9-1.7,1.3l-1.2-1.5c1.8-1.1,3.1-2.3,4.2-3.6-.8,.3-1.6,.7-2.6,1l-.9-1.8c3.2-1,5.5-2.2,7.1-3.8h-3.6c0,.1-.2,.2-.3,.3,.4,.3,.7,.6,1.2,.9l-1.4,1.3c-.4-.3-.7-.7-1-1-.3,.3-.6,.5-.9,.8l-1.2-1.6c1.8-1.2,3-2.8,3.9-4.1l2,.4c-.2,.3-.4,.7-.6,1h4.6v1.9c-1.2,1.5-2.5,2.6-4.4,3.7l.9,.3-.4,.6h4.3Z" />
<path class="k"
d="M69.6,29.3l-.3,10.8c0,1.5-.7,1.9-2.2,2.1l-1.5,.2-.7-2.2h1.4c.5-.2,.7-.3,.8-1.3,.1-2.3,.2-5.6,.3-7.5h-1.5c0,.2,0,.3,0,.5-.1,3.8,.4,7.1-3.1,10.9l-1.9-1.2c.5-.5,.9-1,1.3-1.4l-1.1,.6-.3-.7c-1.8,.3-3.5,.6-4.8,.8-.2,0-.4,0-.6,.1l-.6-2.2c.5-.2,.6-.5,.7-.8,.3-.4,1.1-2.1,1.6-4.1h-2.3v-2.2h7.4v2.2h-2.8c-.5,1.6-1.3,3.6-1.7,4.5,.8-.1,1.5-.2,2.4-.4-.3-.8-.6-1.6-.9-2.2l1.9-.8c.6,1.2,1.1,2.5,1.7,4.2,1-1.9,.9-3.9,1-7,0-.2,0-.4,0-.6h-1.6v-2.2h1.6v-2.8s2.2,.1,2.2,.1v.8c0,.5,0,1.2,0,1.9h3.7Zm-8,.2h-6v-2.2h6v2.2Z" />
<path class="k"
d="M77.2,35.4c-.3-.3-.6-.7-.8-1v8.1h-2v-7c-.5,1.1-1,2.1-1.6,2.9l-1.2-1.9c.9-1.3,2-3.4,2.7-5.3h-1.7v-2.1h1.8v-2.8h2v2.8h1.6v2.1h-1.6v1.2l.4-.4c.6,.5,1.3,1.3,1.9,1.9l-1.4,1.4Zm10.4,2.4c-.7-.4-1.4-.8-2-1.2v5.6h-2.1v-6.7h.9c-.7-.7-1.3-1.5-1.8-2.4-.4,.9-1,1.7-1.8,2.5h.8v1.4c0,2.7-.6,4.1-2.9,5.9l-1.5-1.5c2-1.7,2.3-2.2,2.3-4.4v-.2c-.5,.4-1,.7-1.6,1.1l-1.3-1.7c1.8-1.1,2.9-2,3.6-3.2h-2v-2.1h2.9c.1-.5,.3-1,.3-1.7-1,0-2,.1-2.8,.2l-.2-2.1c2.6-.1,6.2-.5,8.4-.9l.2,2.1c-.9,.1-2.1,.3-3.3,.4,0,.6-.2,1.3-.3,1.9h4.4v2.1h-2.9c.9,1.2,2.1,1.9,3.8,2.8l-1,2.1Z" />
</g>
<path id="i" class="k"
d="M75.9,11.7h-21.7l-4.9-6.2,1.7-1.3,4.3,5.4h19.7l4.3-5.4,1.7,1.3-4.9,6.2Zm3.2,10.5l-4.3-5.9h-19.6l-4.3,5.7-1.7-1.3,4.9-6.5h21.8l4.9,6.7-1.7,1.3Z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="b" xmlns="http://www.w3.org/2000/svg" width="124.7" height="125.4"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 124.7 125.4">
<defs>
<style>
.i{fill:url(#f);}.j{fill:#fff;}.k,.l{fill:#535a60;}.m{fill:#262d34;isolation:isolate;opacity:.2;}.n{fill:#006a17;stroke:#003a0b;}.n,.o{stroke-miterlimit:10;}.l{opacity:0;}.o{fill:url(#g);stroke:#8b9fae;stroke-width:1.4px;}
</style>
<linearGradient id="f" x1="60.1" y1="51.1" x2="64.9" y2="51.1"
gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#989898" />
<stop offset="0" stop-color="#a3a3a3" />
<stop offset=".1" stop-color="#c4c5c5" />
<stop offset=".2" stop-color="#d8d9d9" />
<stop offset=".3" stop-color="#e0e1e1" />
<stop offset=".4" stop-color="#dbdcdc" />
<stop offset=".5" stop-color="#cccece" />
<stop offset=".6" stop-color="#b5b6b7" />
<stop offset=".7" stop-color="#949697" />
<stop offset=".8" stop-color="#6a6c6f" />
<stop offset=".8" stop-color="#3f4246" />
<stop offset="1" stop-color="#404247" />
<stop offset="1" stop-color="#43434a" />
</linearGradient>
<linearGradient id="g" x1="20.8" y1="24" x2="103.9" y2="24" 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="l" y=".7" width="124.7" height="124.7" />
<ellipse id="d" class="m" cx="62.4" cy="62.5" rx="14.4" ry="3.7" />
<ellipse id="e" class="k" cx="62.4" cy="62.5" rx="7.5" ry="3" />
<path class="i"
d="M62.4,39h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" />
<rect class="o" x="20.8" y=".7" width="83.1" height="46.6" rx="14.4" ry="14.4" />
<rect class="n" x="21.7" y="2.8" width="81.3" height="44" rx="14.1" ry="14.1" />
<g>
<path class="j"
d="M43.2,34.5h-.1c0,0,0,1.7,0,1.7h-5.7v.7c-.1,0,5.1,0,5.1,0,0,.7-.3,2.5-.4,3.4-.2,1.7-.8,2.1-2.7,2.2h-1.1c0,0-.6-1.8-.6-1.8h1.4c.6-.2,.8-.2,.9-.7,0-.2,.2-.8,.2-1.1h-5.3l.5-2.6h-.9v-2h8.2c-.6-.5-1.2-1-1.8-1.5v.9h-4.6v-.6c-.4,.4-.9,.8-1.4,1.3l-.9-1.5v.5h-1.2v1.7h1.2v2.1h-1.2v2l1.5-.3v1c0,0,.1,1.1,.1,1.1-1.1,.1-5.4,.8-6.5,1l-.2-2.1c.2,0,.4,0,.7-.1v-5.7h1.9v5.5h.7v-6.2h-2.4v-6.1h5.4v5.2c1-.7,1.7-1.4,2.3-2.3h-1.8v-2.1h2.7c.1-.5,.3-1,.4-1.5l1.9,.3c0,.5-.2,.9-.3,1.3h4v2.1h-2.1c.7,1.2,1.8,2.1,3,2.8l-1,1.7Zm-12.6-3.5h1.6v-1.9h-1.6v1.9Zm9.5,.5c-.4-.5-.7-1-.9-1.6h-.7c-.3,.6-.6,1.1-.9,1.6h2.5Z" />
<path class="j"
d="M45.8,39.5c1-.1,4.2-.9,5.8-1.5l.2,2c-.9,.4-4.6,1.4-5.5,1.5l-.5-2Zm15.9-1c-.1,.6-.2,1-.5,1.7-.5,1.7-1.2,2.3-2.5,2.3s-1.7-.5-2.7-2.1l-.2-.4c-.9,.5-1.8,1-2.8,1.4l-1-2c1.2-.4,2.2-.9,3-1.4-.3-.8-.5-1.8-.7-3l-2.1,.3-.2-2.1,1.9-.3v-1.2c-.1,0-1.3,.1-1.3,.1v-1.7c-1.2,2-2.5,4.2-3.2,5,.7,0,1.7-.4,2.4-.5v2c-1,.2-2.7,.6-3.9,.9-.4,0-.7,.2-.9,.3l-.6-2.2c.6-.2,.8-.3,1.1-.7,.3-.4,.8-1.1,1.3-2-.6,0-1.2,0-1.6,.1h-.7c0,.1-.5-1.9-.5-1.9,.4-.2,.5-.3,.7-.4,.4-.3,1.7-2.5,2.4-4.5l1.9,.9c-.7,1.3-1.9,3.4-2.4,3.9,.4,0,.8,0,1.3,0l1-2.1,1.7,.9v.3c-.1,0,.9-.1,.9-.1,0-1.1-.1-3-.2-3.6h2.1c0,.5,0,1.7,.2,3.3l1.9-.2c-.4-.7-1-1.5-1.5-2.1l1.4-1.1c.6,.6,1.2,1.4,1.7,2.2l-1.1,.9,2.3-.3,.2,2-4.7,.6c0,.4,0,.8,.1,1.2l4.8-.6,.2,2.1-1.9,.3,1.3,1.4c-.8,1-1.7,2-2.8,2.9,.1,.2,.2,.4,.3,.5,.3,.6,.7,.8,.9,.8,.4,0,.5-.2,.8-1.1,.2-.6,.3-.9,.3-1.4l1.8,.9Zm-5.4-3.6c.2,.8,.3,1.4,.5,2,.8-.7,1.5-1.5,2.2-2.4l-2.7,.4Z" />
<path class="j"
d="M72.6,34.5c1.1,2.8,3.4,4.7,6.8,6.1l-1.2,2.4c-3.4-1.8-5.6-3.6-6.9-6.1-1.1,2.1-3.2,4.1-6.7,6l-1.6-2.1c3.6-1.7,6-3.7,6.7-6.3h-5.9v-2.2h6.2v-2.9h-5.2v-2.2h12.8v2.2h-5.3v2.9h6.2v2.2h-6Z" />
<path class="j"
d="M86.1,35.4c-.3-.3-.6-.7-.8-1v8.1h-2v-7c-.5,1.1-1,2.1-1.6,2.9l-1.2-1.9c.9-1.3,2-3.4,2.7-5.3h-1.7v-2.1h1.8v-2.8h2v2.8h1.6v2.1h-1.6v1.2l.4-.4c.6,.5,1.3,1.3,1.9,1.9l-1.4,1.4Zm10.4,2.4c-.7-.4-1.4-.8-2-1.2v5.6h-2.1v-6.7h.9c-.7-.7-1.3-1.5-1.8-2.4-.4,.9-1,1.7-1.8,2.5h.8v1.4c0,2.7-.6,4.1-2.9,5.9l-1.5-1.5c2-1.7,2.3-2.2,2.3-4.4v-.2c-.5,.4-1,.7-1.6,1.1l-1.3-1.7c1.8-1.1,2.9-2,3.6-3.2h-2v-2.1h2.9c.1-.5,.3-1,.3-1.7-1,0-2,.1-2.8,.2l-.2-2.1c2.6-.1,6.2-.5,8.4-.9l.2,2.1c-.9,.1-2.1,.3-3.3,.4,0,.6-.2,1.3-.3,1.9h4.4v2.1h-2.9c.9,1.2,2.1,1.9,3.8,2.8l-1,2.1Z" />
</g>
<path id="h" class="j"
d="M73.2,11.9h-21.7l-4.9-6.2,1.7-1.3,4.3,5.4h19.7l4.3-5.4,1.7,1.3-4.9,6.2Zm3.2,10.5l-4.3-5.9h-19.6l-4.3,5.7-1.7-1.3,4.9-6.5h21.8l4.9,6.7-1.7,1.3Z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="b" xmlns="http://www.w3.org/2000/svg" width="124.7" height="125.4"
xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 124.7 125.4">
<defs>
<style>
.h{fill:url(#f);}.i{fill:#fff;}.j,.k{fill:#535a60;}.l{fill:#262d34;isolation:isolate;opacity:.2;}.m{fill:#d82e00;stroke:#8a1c21;}.m,.n{stroke-miterlimit:10;}.k{opacity:0;}.n{fill:url(#g);stroke:#8b9fae;stroke-width:1.4px;}
</style>
<linearGradient id="f" x1="60.1" y1="51.1" x2="64.9" y2="51.1"
gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#989898" />
<stop offset="0" stop-color="#a3a3a3" />
<stop offset=".1" stop-color="#c4c5c5" />
<stop offset=".2" stop-color="#d8d9d9" />
<stop offset=".3" stop-color="#e0e1e1" />
<stop offset=".4" stop-color="#dbdcdc" />
<stop offset=".5" stop-color="#cccece" />
<stop offset=".6" stop-color="#b5b6b7" />
<stop offset=".7" stop-color="#949697" />
<stop offset=".8" stop-color="#6a6c6f" />
<stop offset=".8" stop-color="#3f4246" />
<stop offset="1" stop-color="#404247" />
<stop offset="1" stop-color="#43434a" />
</linearGradient>
<linearGradient id="g" x1="20.8" y1="24" x2="103.9" y2="24" 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="k" y=".7" width="124.7" height="124.7" />
<ellipse id="d" class="l" cx="62.4" cy="62.5" rx="14.4" ry="3.7" />
<ellipse id="e" class="j" cx="62.4" cy="62.5" rx="7.5" ry="3" />
<path class="h"
d="M62.4,39h0c1.4,0,2.6,1.2,2.6,2.6v19.2c0,1.4-1.1,2.5-2.5,2.5h-.3c-1.4,0-2.5-1.1-2.5-2.5v-19.3c0-1.4,1.2-2.6,2.6-2.6Z" />
<rect class="n" x="20.8" y=".7" width="83.1" height="46.6" rx="14.4" ry="14.4" />
<rect class="m" x="21.7" y="2.8" width="81.3" height="44" rx="14.1" ry="14.1" />
<g>
<path class="i"
d="M43.2,34.5h-.1c0,0,0,1.7,0,1.7h-5.7v.7c-.1,0,5.1,0,5.1,0,0,.7-.3,2.5-.4,3.4-.2,1.7-.8,2.1-2.7,2.2h-1.1c0,0-.6-1.8-.6-1.8h1.4c.6-.2,.8-.2,.9-.7,0-.2,.2-.8,.2-1.1h-5.3l.5-2.6h-.9v-2h8.2c-.6-.5-1.2-1-1.8-1.5v.9h-4.6v-.6c-.4,.4-.9,.8-1.4,1.3l-.9-1.5v.5h-1.2v1.7h1.2v2.1h-1.2v2l1.5-.3v1c0,0,.1,1.1,.1,1.1-1.1,.1-5.4,.8-6.5,1l-.2-2.1c.2,0,.4,0,.7-.1v-5.7h1.9v5.5h.7v-6.2h-2.4v-6.1h5.4v5.2c1-.7,1.7-1.4,2.3-2.3h-1.8v-2.1h2.7c.1-.5,.3-1,.4-1.5l1.9,.3c0,.5-.2,.9-.3,1.3h4v2.1h-2.1c.7,1.2,1.8,2.1,3,2.8l-1,1.7Zm-12.6-3.5h1.6v-1.9h-1.6v1.9Zm9.5,.5c-.4-.5-.7-1-.9-1.6h-.7c-.3,.6-.6,1.1-.9,1.6h2.5Z" />
<path class="i"
d="M45.8,39.5c1-.1,4.2-.9,5.8-1.5l.2,2c-.9,.4-4.6,1.4-5.5,1.5l-.5-2Zm15.9-1c-.1,.6-.2,1-.5,1.7-.5,1.7-1.2,2.3-2.5,2.3s-1.7-.5-2.7-2.1l-.2-.4c-.9,.5-1.8,1-2.8,1.4l-1-2c1.2-.4,2.2-.9,3-1.4-.3-.8-.5-1.8-.7-3l-2.1,.3-.2-2.1,1.9-.3v-1.2c-.1,0-1.3,.1-1.3,.1v-1.7c-1.2,2-2.5,4.2-3.2,5,.7,0,1.7-.4,2.4-.5v2c-1,.2-2.7,.6-3.9,.9-.4,0-.7,.2-.9,.3l-.6-2.2c.6-.2,.8-.3,1.1-.7,.3-.4,.8-1.1,1.3-2-.6,0-1.2,0-1.6,.1h-.7c0,.1-.5-1.9-.5-1.9,.4-.2,.5-.3,.7-.4,.4-.3,1.7-2.5,2.4-4.5l1.9,.9c-.7,1.3-1.9,3.4-2.4,3.9,.4,0,.8,0,1.3,0l1-2.1,1.7,.9v.3c-.1,0,.9-.1,.9-.1,0-1.1-.1-3-.2-3.6h2.1c0,.5,0,1.7,.2,3.3l1.9-.2c-.4-.7-1-1.5-1.5-2.1l1.4-1.1c.6,.6,1.2,1.4,1.7,2.2l-1.1,.9,2.3-.3,.2,2-4.7,.6c0,.4,0,.8,.1,1.2l4.8-.6,.2,2.1-1.9,.3,1.3,1.4c-.8,1-1.7,2-2.8,2.9,.1,.2,.2,.4,.3,.5,.3,.6,.7,.8,.9,.8,.4,0,.5-.2,.8-1.1,.2-.6,.3-.9,.3-1.4l1.8,.9Zm-5.4-3.6c.2,.8,.3,1.4,.5,2,.8-.7,1.5-1.5,2.2-2.4l-2.7,.4Z" />
<path class="i"
d="M72.6,34.5c1.1,2.8,3.4,4.7,6.8,6.1l-1.2,2.4c-3.4-1.8-5.6-3.6-6.9-6.1-1.1,2.1-3.2,4.1-6.7,6l-1.6-2.1c3.6-1.7,6-3.7,6.7-6.3h-5.9v-2.2h6.2v-2.9h-5.2v-2.2h12.8v2.2h-5.3v2.9h6.2v2.2h-6Z" />
<path class="i"
d="M86.1,35.4c-.3-.3-.6-.7-.8-1v8.1h-2v-7c-.5,1.1-1,2.1-1.6,2.9l-1.2-1.9c.9-1.3,2-3.4,2.7-5.3h-1.7v-2.1h1.8v-2.8h2v2.8h1.6v2.1h-1.6v1.2l.4-.4c.6,.5,1.3,1.3,1.9,1.9l-1.4,1.4Zm10.4,2.4c-.7-.4-1.4-.8-2-1.2v5.6h-2.1v-6.7h.9c-.7-.7-1.3-1.5-1.8-2.4-.4,.9-1,1.7-1.8,2.5h.8v1.4c0,2.7-.6,4.1-2.9,5.9l-1.5-1.5c2-1.7,2.3-2.2,2.3-4.4v-.2c-.5,.4-1,.7-1.6,1.1l-1.3-1.7c1.8-1.1,2.9-2,3.6-3.2h-2v-2.1h2.9c.1-.5,.3-1,.3-1.7-1,0-2,.1-2.8,.2l-.2-2.1c2.6-.1,6.2-.5,8.4-.9l.2,2.1c-.9,.1-2.1,.3-3.3,.4,0,.6-.2,1.3-.3,1.9h4.4v2.1h-2.9c.9,1.2,2.1,1.9,3.8,2.8l-1,2.1Z" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" width="168" height="38" viewBox="0 0 168 38">
<defs>
<style>.a{fill:#5431b2;opacity:0.2;}.b{fill:#5b57c1;}.c{fill:#c18557;}</style>
</defs>
<g transform="translate(-153 -1049)">
<g transform="translate(0 51)">
<rect class="a" width="38" height="168" transform="translate(321 998) rotate(90)" />
<rect class="b" width="6" height="168" transform="translate(321 1003) rotate(90)" />
<rect class="b" width="6" height="168" transform="translate(321 1025) rotate(90)" />
<rect class="c" width="6" height="28" transform="translate(156 1003)" />
<rect class="c" width="6" height="28" transform="translate(176 1003)" />
<rect class="c" width="6" height="28" transform="translate(215 1003)" />
<rect class="c" width="6" height="28" transform="translate(195 1003)" />
<rect class="c" width="6" height="28" transform="translate(254 1003)" />
<rect class="c" width="6" height="28" transform="translate(234 1003)" />
<rect class="c" width="6" height="28" transform="translate(312 1003)" />
<rect class="c" width="6" height="28" transform="translate(293 1003)" />
<rect class="c" width="6" height="28" transform="translate(273 1003)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -26,6 +26,8 @@ open class ReferenceEntity() : RealmObject() {
var zoomMin: Int = 18 //显示最小级别
var zoomMax: Int = 23 //显示最大级别
var taskId: Int = 0 //任务ID
var visable:Int = 0 // 默认0不是显示 1为渲染显示
var geometry: String = "" // 要素渲染参考的geometry该数据可能会在导入预处理环节被修改原始geometry会保存在properties的geometry字段下
get() {
wkt = GeometryTools.createGeometry(field)

View File

@ -62,6 +62,7 @@ open class RenderEntity() : RealmObject(), Parcelable {
var taskId: Int = 0 //任务ID
var zoomMin: Int = 18 //显示最小级别
var zoomMax: Int = 23 //显示最大级别
var visable:Int = 0 // 默认0不是显示 1为渲染显示
constructor(name: String) : this() {
this.name = name

View File

@ -24,7 +24,7 @@ import java.io.File
*/
class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, tracePath: String) :
BaseHandler(context, mapView) {
private var baseGroupLayer // 用于盛放所有基础底图的图层组,便于统一管理
private var baseGroupLayer // 用于盛放所有基础底图的图层组,便于统一管理LabelTileLoaderHook
: GroupLayer? = null
private val mTracePath: String = tracePath

View File

@ -39,7 +39,7 @@ public class OMDBTileDataSource implements ITileDataSource {
int yStart = (int) tile.tileY << m;
int yEnd = (int) ((tile.tileY + 1) << m);
RealmQuery<RenderEntity> realmQuery = Realm.getDefaultInstance().where(RenderEntity.class).rawPredicate("tileX>=" + xStart + " and tileX<=" + xEnd + " and tileY>=" + yStart + " and tileY<=" + yEnd);
RealmQuery<RenderEntity> realmQuery = Realm.getDefaultInstance().where(RenderEntity.class).rawPredicate("tileX>=" + xStart + " and tileX<=" + xEnd + " and tileY>=" + yStart + " and tileY<=" + yEnd+ " and visable=1");
// 筛选不显示的数据
if (Constant.HAD_LAYER_INVISIABLE_ARRAY != null && Constant.HAD_LAYER_INVISIABLE_ARRAY.length > 0) {
realmQuery.beginGroup();

2
vtm

@ -1 +1 @@
Subproject commit 4c9926d105877fce305025e8f85651ccea947c4f
Subproject commit 8717b07ebff4dd61226abb19474be6567a736ad8