feat: 修改同点位marker避让时未参考angle角度的问题

This commit is contained in:
xiaoyan 2023-09-05 15:59:09 +08:00
parent 1aba0b513d
commit ebd70520e4
6 changed files with 18 additions and 17 deletions

View File

@ -497,11 +497,6 @@
"vlib": "generateAddWidthLine()"
}
]
},
"5002":{
"table": "OMDB_AREA",
"code": 5002,
"name": "面测试"
}
}
},

View File

@ -55,7 +55,7 @@ class ImportPreProcess {
)!=null) {
var angle = renderEntity?.properties?.get("angle")?.toDouble()!!
// angle角度为与正北方向的顺时针夹角将其转换为与X轴正方向的逆时针夹角即为正东方向的夹角
angle = (450 - angle) % 360
angle = -((450 - angle) % 360)
radian = Math.toRadians(angle)
} else {
var isReverse = false // 是否为逆向
@ -129,7 +129,7 @@ class ImportPreProcess {
// 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
@ -300,7 +300,7 @@ class ImportPreProcess {
"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
@ -324,7 +324,7 @@ class ImportPreProcess {
}
} else renderEntity?.properties?.get("angle")?.toDouble()!!
angle = (450 - angle) % 360
angle = -((450 - angle) % 360)
radian = Math.toRadians(angle)
}
@ -451,9 +451,10 @@ class ImportPreProcess {
referenceEntity.properties["currentDirect"] =
laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
referenceEntity.properties["currentType"] =
laneInfoTypeArray[i].toString().split(",").distinct().joinToString("_")
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/bus/1301_" + referenceEntity.properties["currentDirect"] + ".svg"
"assets:omdb/4601/${type}/1301_${referenceEntity.properties["currentDirect"]}.svg"
Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
Realm.getDefaultInstance().insert(referenceEntity)
}
@ -687,7 +688,7 @@ class ImportPreProcess {
"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
@ -708,7 +709,7 @@ class ImportPreProcess {
}
} else renderEntity?.properties?.get("angle")?.toDouble()!!
angle = (450 - angle) % 360
angle = -((450 - angle) % 360)
radian = Math.toRadians(angle)
}

View File

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

View File

@ -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="false" type="xs:boolean" use="optional"/>
<xs:attribute name="gland" default="true" type="xs:boolean" use="optional"/>
<!-- 原图标旋转角度默认情况下应该使用以X轴为正方向的图标此处可设置原图标的旋转角度在渲染时自动对图标进行旋转仅支持线要素 -->
<xs:attribute name="degree" default="0" type="xs:float" use="optional"/>
</xs:complexType>

View File

@ -317,7 +317,7 @@ open class ClusterMarkerRenderer : MarkerRenderer {
// this item will act as a cluster, just use a proper bitmap
// depending on cluster size, instead of its marker
val bitmap = getClusterBitmap(it.clusterSize + 1)
s.set(it.x, it.y, bitmap, true, false, 0f)
s.set(it.x, it.y, bitmap, true, false, 0f, 0f)
s.offset = PointF(0.5f, 0.5f)
s.billboard = true // could be a parameter
} else {
@ -325,7 +325,7 @@ open class ClusterMarkerRenderer : MarkerRenderer {
var symbol: MarkerSymbol? = it.item.marker
if (symbol == null) symbol = mDefaultMarker
symbol?.let { symbol ->
s.set(it.x, it.y, symbol.bitmap, true, false, 0f)
s.set(it.x, it.y, symbol.bitmap, true, false, 0f, 0f)
s.offset = symbol.hotspot
s.billboard = symbol.isBillboard
}

View File

@ -15,6 +15,7 @@ import okhttp3.Cache
import okhttp3.OkHttpClient
import org.oscim.android.theme.AssetsRenderTheme
import org.oscim.layers.GroupLayer
import org.oscim.layers.TileGridLayer
import org.oscim.layers.tile.buildings.BuildingLayer
import org.oscim.layers.tile.vector.VectorTileLayer
import org.oscim.layers.tile.vector.labeling.LabelLayer
@ -55,6 +56,7 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, traceP
private lateinit var omdbReferenceTileLayer: VectorTileLayer
private lateinit var omdbLabelLayer: LabelLayer
private lateinit var omdbReferenceLabelLayer: LabelLayer
private lateinit var tileGridLayer: TileGridLayer // 用来显示tile号的layer
private val omdbTileSource by lazy { OMDBTileSource() }
private val omdbReferenceTileSource by lazy { OMDBReferenceTileSource() }
@ -141,6 +143,9 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, traceP
// 向两个Vector图层增加hook钩子加载数据前对style或数据进行二次处理
omdbVectorTileLayer.addHook(navinfoTileThemeHook)
omdbReferenceTileLayer.addHook(navinfoTileThemeHook)
// 添加显示grid的tile号的图层
tileGridLayer = TileGridLayer(mMapView.vtmMap)
addLayer(tileGridLayer, NIMapView.LAYER_GROUPS.OPERATE_MARKER)
}
private fun resetOMDBVectorTileLayer() {