feat: 动态marker配置支持多图标设置
This commit is contained in:
parent
35301e4c48
commit
89b862a0cd
@ -283,7 +283,7 @@
|
||||
"table": "OMDB_TRAFFIC_SIGN",
|
||||
"code": 3005,
|
||||
"name": "交通标牌",
|
||||
"zoomMin": 18,
|
||||
"zoomMin": 17,
|
||||
"zoomMax": 20,
|
||||
"is3D": true,
|
||||
"catch": true,
|
||||
@ -592,6 +592,12 @@
|
||||
"zoomMin": 15,
|
||||
"zoomMax": 17,
|
||||
"transformer": [
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
"klib": "geometry",
|
||||
"vlib": "translateBack()"
|
||||
},
|
||||
{
|
||||
"k": "geometry",
|
||||
"v": "~",
|
||||
|
@ -631,30 +631,40 @@ class ImportPreProcess {
|
||||
val listResult = mutableListOf<ReferenceEntity>()
|
||||
|
||||
for (i in 0 until laneInfoDirectArray.length()) {
|
||||
// 根据后续的数据生成辅助表数据
|
||||
val referenceEntity = ReferenceEntity()
|
||||
// referenceEntity.renderEntityId = renderEntity.id
|
||||
referenceEntity.name = "${renderEntity.name}参考方向"
|
||||
referenceEntity.table = renderEntity.table
|
||||
referenceEntity.enable = renderEntity.enable
|
||||
referenceEntity.code = renderEntity.code
|
||||
referenceEntity.taskId = renderEntity.taskId
|
||||
referenceEntity.zoomMin = renderEntity.zoomMin
|
||||
referenceEntity.zoomMax = renderEntity.zoomMax
|
||||
// 与原数据使用相同的geometry
|
||||
referenceEntity.geometry = renderEntity.geometry
|
||||
referenceEntity.properties["qi_table"] = renderEntity.table
|
||||
referenceEntity.properties["currentDirect"] =
|
||||
val currentDirect =
|
||||
laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
|
||||
referenceEntity.properties["currentType"] =
|
||||
val currentType =
|
||||
laneInfoTypeArray[i].toString()
|
||||
val type =
|
||||
if (referenceEntity.properties["currentType"] == "0") "normal" else if (referenceEntity.properties["currentType"] == "1") "extend" else "bus"
|
||||
referenceEntity.properties["symbol"] =
|
||||
"assets:omdb/4601/${type}/1301_${referenceEntity.properties["currentDirect"]}.svg"
|
||||
Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
|
||||
referenceEntity.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties))
|
||||
renderEntity.referenceEntitys?.add(referenceEntity)
|
||||
if (currentType == "0") "normal" else if (currentType == "1") "extend" else "bus"
|
||||
val symbol =
|
||||
"assets:omdb/4601/${type}/1301_${currentDirect}.svg"
|
||||
renderEntity.properties["src"] = if(renderEntity.properties["src"].isNullOrEmpty()) symbol else "${renderEntity.properties["src"]}|${symbol}"
|
||||
|
||||
// // 根据后续的数据生成辅助表数据
|
||||
// val referenceEntity = ReferenceEntity()
|
||||
//// referenceEntity.renderEntityId = renderEntity.id
|
||||
// referenceEntity.name = "${renderEntity.name}参考方向"
|
||||
// referenceEntity.table = renderEntity.table
|
||||
// referenceEntity.enable = renderEntity.enable
|
||||
// referenceEntity.code = renderEntity.code
|
||||
// referenceEntity.taskId = renderEntity.taskId
|
||||
// referenceEntity.zoomMin = renderEntity.zoomMin
|
||||
// referenceEntity.zoomMax = renderEntity.zoomMax
|
||||
// // 与原数据使用相同的geometry
|
||||
// referenceEntity.geometry = renderEntity.geometry
|
||||
// referenceEntity.properties["qi_table"] = renderEntity.table
|
||||
// referenceEntity.properties["currentDirect"] =
|
||||
// laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
|
||||
// referenceEntity.properties["currentType"] =
|
||||
// laneInfoTypeArray[i].toString()
|
||||
// val type =
|
||||
// if (referenceEntity.properties["currentType"] == "0") "normal" else if (referenceEntity.properties["currentType"] == "1") "extend" else "bus"
|
||||
// referenceEntity.properties["symbol"] =
|
||||
// "assets:omdb/4601/${type}/1301_${referenceEntity.properties["currentDirect"]}.svg"
|
||||
// Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
|
||||
// referenceEntity.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(referenceEntity.properties))
|
||||
// renderEntity.referenceEntitys?.add(referenceEntity)
|
||||
//listResult.add(referenceEntity)
|
||||
}
|
||||
//insertData(listResult)
|
||||
@ -1079,22 +1089,22 @@ class ImportPreProcess {
|
||||
// 解析accessCharacteristic,判断是否存在指定属性
|
||||
val accessCharacteristic = renderEntity.properties["accessCharacteristic"].toString().toInt()
|
||||
var str = ""
|
||||
if (accessCharacteristic.and(4)>0) {
|
||||
if (accessCharacteristic.and(0b100)>0) {
|
||||
str += "公"
|
||||
}
|
||||
if (accessCharacteristic.and(8)>0) {
|
||||
if (accessCharacteristic.and(0b1000)>0) {
|
||||
if (str.isNotEmpty()) {
|
||||
str += "|"
|
||||
}
|
||||
str += "多"
|
||||
str += "HOV"
|
||||
}
|
||||
if (accessCharacteristic.and(64)>0) {
|
||||
if (accessCharacteristic.and(0b1000000)>0) {
|
||||
if (str.isNotEmpty()) {
|
||||
str += "|"
|
||||
}
|
||||
str += "行"
|
||||
}
|
||||
if (accessCharacteristic.and(128)>0) {
|
||||
if (accessCharacteristic.and(0b10000000)>0) {
|
||||
if (str.isNotEmpty()) {
|
||||
str += "|"
|
||||
}
|
||||
|
@ -257,7 +257,7 @@
|
||||
<xs:attribute name="repeat-start" default="30" type="xs:float" use="optional"/>
|
||||
<xs:attribute name="rotate" default="true" type="xs:boolean" use="optional"/>
|
||||
<!-- 设置是否支持图标压盖,如果为true,则同点位图标不避让,允许压盖,否则支持自动避让 -->
|
||||
<xs:attribute name="gland" default="true" type="xs:boolean" use="optional"/>
|
||||
<xs:attribute name="gland" default="false" type="xs:boolean" use="optional"/>
|
||||
<!-- 原图标旋转角度,默认情况下应该使用以X轴为正方向的图标,此处可设置原图标的旋转角度,在渲染时自动对图标进行旋转,仅支持线要素 -->
|
||||
<xs:attribute name="degree" default="0" type="xs:float" use="optional"/>
|
||||
<!-- 图标在y轴方向上的偏移量 -->
|
||||
|
@ -1556,7 +1556,7 @@
|
||||
<!-- 车信 -->
|
||||
<m v="OMDB_LANEINFO" >
|
||||
<symbol repeat="false" repeat-start="0" repeat-gap="2000"
|
||||
src="@symbol" symbol-height="24" degree="90"></symbol>
|
||||
src="@src" symbol-height="24" degree="90"></symbol>
|
||||
</m>
|
||||
<!-- 杆状物 -->
|
||||
<m v="OMDB_POLE">
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.navinfo.collect.library.map.source;
|
||||
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
@ -11,21 +10,17 @@ import com.navinfo.collect.library.utils.GeometryTools;
|
||||
import com.navinfo.collect.library.utils.MapParamUtils;
|
||||
|
||||
import org.locationtech.jts.geom.Polygon;
|
||||
import org.oscim.core.MapPosition;
|
||||
import org.oscim.layers.tile.MapTile;
|
||||
import org.oscim.map.Map;
|
||||
import org.oscim.map.Viewport;
|
||||
import org.oscim.tiling.ITileDataSink;
|
||||
import org.oscim.tiling.ITileDataSource;
|
||||
import org.oscim.tiling.QueryResult;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import io.realm.Realm;
|
||||
import io.realm.RealmConfiguration;
|
||||
import io.realm.RealmQuery;
|
||||
|
||||
public class OMDBTileDataSource implements ITileDataSource {
|
||||
@ -129,7 +124,7 @@ public class OMDBTileDataSource implements ITileDataSource {
|
||||
realmQuery.endGroup();
|
||||
}
|
||||
long time = System.currentTimeMillis();
|
||||
List<RenderEntity> listResult = realmQuery.findAll();
|
||||
List<RenderEntity> listResult = realm.copyFromRealm(realmQuery.findAll());
|
||||
long newTime = System.currentTimeMillis() - time;
|
||||
|
||||
// Log.e("jingo", "当前OMDBTileDataSource " + Thread.currentThread().hashCode() + " 当前realm " + realm.hashCode() + " 查询耗时" + newTime + " 条数" + listResult.size());
|
||||
|
2
vtm
2
vtm
@ -1 +1 @@
|
||||
Subproject commit ee88167c7de989b3f7c71ae00d9580ff91fd3bf6
|
||||
Subproject commit 3eb80a33c6b54609a47083c38fe35fd4916edba9
|
Loading…
x
Reference in New Issue
Block a user