feat: 修改同点位marker避让时未参考angle角度的问题
This commit is contained in:
@@ -497,11 +497,6 @@
|
|||||||
"vlib": "generateAddWidthLine()"
|
"vlib": "generateAddWidthLine()"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"5002":{
|
|
||||||
"table": "OMDB_AREA",
|
|
||||||
"code": 5002,
|
|
||||||
"name": "面测试"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class ImportPreProcess {
|
|||||||
)!=null) {
|
)!=null) {
|
||||||
var angle = renderEntity?.properties?.get("angle")?.toDouble()!!
|
var angle = renderEntity?.properties?.get("angle")?.toDouble()!!
|
||||||
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
||||||
angle = (450 - angle) % 360
|
angle = -((450 - angle) % 360)
|
||||||
radian = Math.toRadians(angle)
|
radian = Math.toRadians(angle)
|
||||||
} else {
|
} else {
|
||||||
var isReverse = false // 是否为逆向
|
var isReverse = false // 是否为逆向
|
||||||
@@ -129,7 +129,7 @@ class ImportPreProcess {
|
|||||||
// angle += 180
|
// angle += 180
|
||||||
// }
|
// }
|
||||||
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
||||||
angle = (450 - angle) % 360
|
angle = -((450 - angle) % 360)
|
||||||
radian = Math.toRadians(angle)
|
radian = Math.toRadians(angle)
|
||||||
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
|
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
|
||||||
var coordinates = geometry.coordinates
|
var coordinates = geometry.coordinates
|
||||||
@@ -300,7 +300,7 @@ class ImportPreProcess {
|
|||||||
"angle"
|
"angle"
|
||||||
)?.toDouble()!!
|
)?.toDouble()!!
|
||||||
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
||||||
angle = (450 - angle) % 360
|
angle = -((450 - angle) % 360)
|
||||||
radian = Math.toRadians(angle)
|
radian = Math.toRadians(angle)
|
||||||
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
|
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
|
||||||
var coordinates = geometry.coordinates
|
var coordinates = geometry.coordinates
|
||||||
@@ -324,7 +324,7 @@ class ImportPreProcess {
|
|||||||
}
|
}
|
||||||
} else renderEntity?.properties?.get("angle")?.toDouble()!!
|
} else renderEntity?.properties?.get("angle")?.toDouble()!!
|
||||||
|
|
||||||
angle = (450 - angle) % 360
|
angle = -((450 - angle) % 360)
|
||||||
radian = Math.toRadians(angle)
|
radian = Math.toRadians(angle)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -451,9 +451,10 @@ class ImportPreProcess {
|
|||||||
referenceEntity.properties["currentDirect"] =
|
referenceEntity.properties["currentDirect"] =
|
||||||
laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
|
laneInfoDirectArray[i].toString().split(",").distinct().joinToString("_")
|
||||||
referenceEntity.properties["currentType"] =
|
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"] =
|
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())
|
Log.d("unpackingLaneInfo", referenceEntity.properties["symbol"].toString())
|
||||||
Realm.getDefaultInstance().insert(referenceEntity)
|
Realm.getDefaultInstance().insert(referenceEntity)
|
||||||
}
|
}
|
||||||
@@ -687,7 +688,7 @@ class ImportPreProcess {
|
|||||||
"angle"
|
"angle"
|
||||||
)?.toDouble()!!
|
)?.toDouble()!!
|
||||||
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
// angle角度为与正北方向的顺时针夹角,将其转换为与X轴正方向的逆时针夹角,即为正东方向的夹角
|
||||||
angle = (450 - angle) % 360
|
angle = -((450 - angle) % 360)
|
||||||
radian = Math.toRadians(angle)
|
radian = Math.toRadians(angle)
|
||||||
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
|
} else if (Geometry.TYPENAME_LINESTRING == geometry?.geometryType) {
|
||||||
var coordinates = geometry.coordinates
|
var coordinates = geometry.coordinates
|
||||||
@@ -708,7 +709,7 @@ class ImportPreProcess {
|
|||||||
}
|
}
|
||||||
} else renderEntity?.properties?.get("angle")?.toDouble()!!
|
} else renderEntity?.properties?.get("angle")?.toDouble()!!
|
||||||
|
|
||||||
angle = (450 - angle) % 360
|
angle = -((450 - angle) % 360)
|
||||||
radian = Math.toRadians(angle)
|
radian = Math.toRadians(angle)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
|
|||||||
// 定位到指定位置
|
// 定位到指定位置
|
||||||
niMapController.mMapView.vtmMap.animator()
|
niMapController.mMapView.vtmMap.animator()
|
||||||
// .animateTo(GeoPoint( 40.05108004733645, 116.29187746293708 ))
|
// .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 -> {
|
R.id.personal_center_menu_open_all_layer -> {
|
||||||
MapParamUtils.setDataLayerEnum(DataLayerEnum.SHOW_ALL_LAYERS)
|
MapParamUtils.setDataLayerEnum(DataLayerEnum.SHOW_ALL_LAYERS)
|
||||||
|
|||||||
@@ -257,7 +257,7 @@
|
|||||||
<xs:attribute name="repeat-start" default="30" type="xs:float" use="optional"/>
|
<xs:attribute name="repeat-start" default="30" type="xs:float" use="optional"/>
|
||||||
<xs:attribute name="rotate" default="true" type="xs:boolean" use="optional"/>
|
<xs:attribute name="rotate" default="true" type="xs:boolean" use="optional"/>
|
||||||
<!-- 设置是否支持图标压盖,如果为true,则同点位图标不避让,允许压盖,否则支持自动避让 -->
|
<!-- 设置是否支持图标压盖,如果为true,则同点位图标不避让,允许压盖,否则支持自动避让 -->
|
||||||
<xs:attribute name="gland" default="false" type="xs:boolean" use="optional"/>
|
<xs:attribute name="gland" default="true" type="xs:boolean" use="optional"/>
|
||||||
<!-- 原图标旋转角度,默认情况下应该使用以X轴为正方向的图标,此处可设置原图标的旋转角度,在渲染时自动对图标进行旋转,仅支持线要素 -->
|
<!-- 原图标旋转角度,默认情况下应该使用以X轴为正方向的图标,此处可设置原图标的旋转角度,在渲染时自动对图标进行旋转,仅支持线要素 -->
|
||||||
<xs:attribute name="degree" default="0" type="xs:float" use="optional"/>
|
<xs:attribute name="degree" default="0" type="xs:float" use="optional"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ open class ClusterMarkerRenderer : MarkerRenderer {
|
|||||||
// this item will act as a cluster, just use a proper bitmap
|
// this item will act as a cluster, just use a proper bitmap
|
||||||
// depending on cluster size, instead of its marker
|
// depending on cluster size, instead of its marker
|
||||||
val bitmap = getClusterBitmap(it.clusterSize + 1)
|
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.offset = PointF(0.5f, 0.5f)
|
||||||
s.billboard = true // could be a parameter
|
s.billboard = true // could be a parameter
|
||||||
} else {
|
} else {
|
||||||
@@ -325,7 +325,7 @@ open class ClusterMarkerRenderer : MarkerRenderer {
|
|||||||
var symbol: MarkerSymbol? = it.item.marker
|
var symbol: MarkerSymbol? = it.item.marker
|
||||||
if (symbol == null) symbol = mDefaultMarker
|
if (symbol == null) symbol = mDefaultMarker
|
||||||
symbol?.let { symbol ->
|
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.offset = symbol.hotspot
|
||||||
s.billboard = symbol.isBillboard
|
s.billboard = symbol.isBillboard
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import okhttp3.Cache
|
|||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import org.oscim.android.theme.AssetsRenderTheme
|
import org.oscim.android.theme.AssetsRenderTheme
|
||||||
import org.oscim.layers.GroupLayer
|
import org.oscim.layers.GroupLayer
|
||||||
|
import org.oscim.layers.TileGridLayer
|
||||||
import org.oscim.layers.tile.buildings.BuildingLayer
|
import org.oscim.layers.tile.buildings.BuildingLayer
|
||||||
import org.oscim.layers.tile.vector.VectorTileLayer
|
import org.oscim.layers.tile.vector.VectorTileLayer
|
||||||
import org.oscim.layers.tile.vector.labeling.LabelLayer
|
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 omdbReferenceTileLayer: VectorTileLayer
|
||||||
private lateinit var omdbLabelLayer: LabelLayer
|
private lateinit var omdbLabelLayer: LabelLayer
|
||||||
private lateinit var omdbReferenceLabelLayer: LabelLayer
|
private lateinit var omdbReferenceLabelLayer: LabelLayer
|
||||||
|
private lateinit var tileGridLayer: TileGridLayer // 用来显示tile号的layer
|
||||||
|
|
||||||
private val omdbTileSource by lazy { OMDBTileSource() }
|
private val omdbTileSource by lazy { OMDBTileSource() }
|
||||||
private val omdbReferenceTileSource by lazy { OMDBReferenceTileSource() }
|
private val omdbReferenceTileSource by lazy { OMDBReferenceTileSource() }
|
||||||
@@ -141,6 +143,9 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView, traceP
|
|||||||
// 向两个Vector图层增加hook钩子,加载数据前对style或数据进行二次处理
|
// 向两个Vector图层增加hook钩子,加载数据前对style或数据进行二次处理
|
||||||
omdbVectorTileLayer.addHook(navinfoTileThemeHook)
|
omdbVectorTileLayer.addHook(navinfoTileThemeHook)
|
||||||
omdbReferenceTileLayer.addHook(navinfoTileThemeHook)
|
omdbReferenceTileLayer.addHook(navinfoTileThemeHook)
|
||||||
|
// 添加显示grid的tile号的图层
|
||||||
|
tileGridLayer = TileGridLayer(mMapView.vtmMap)
|
||||||
|
addLayer(tileGridLayer, NIMapView.LAYER_GROUPS.OPERATE_MARKER)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun resetOMDBVectorTileLayer() {
|
private fun resetOMDBVectorTileLayer() {
|
||||||
|
|||||||
Reference in New Issue
Block a user