如何在ESRI地图中将不透明度设置为选定的图形

时间:2018-12-27 09:46:54

标签: esri-maps arcgis-android-api

在我的Android应用中,我使用ESRI map类(使用Kotlin)在PictureMarkerSymbol上添加了图片标记符号,例如:

val markerSymbol = PictureMarkerSymbol.createAsync(ContextCompat.getDrawable(context!!, icon) as BitmapDrawable?).get()

通过设置符号的默认不透明度并将其添加到叠加层上,在地图上添加多个标记:

        markerSymbol.opacity = 0.3f
        //add a new graphic as marker point
        val markerGraphicPoint = Point(activeCall.lang, activeCall.lat, spatialReference)
        val graphic = Graphic(markerGraphicPoint, markerSymbol)

        graphicsOverlay.graphics.add(graphic)

现在,我想将不透明度设置为所选图形(无论如何,我将从数组中获取所选图形符号)。我可以从选定的图形中获取符号,例如:

selectedGraphic?.symbol

我想为所选符号设置不透明度,例如:

selectedGraphic?.symbol = 1.0f // Need this one

但是如何设置不透明度,此符号类中没有setOpacity

或者如何从所选图形中获取PictureMarkerSymbol ??

我尝试通过以下方式将其转换为PictureMarkerSymbol

selectedMarker?.symbol as PictureMarkerSymbol

但是在这里,我得到了类强制转换异常

也尝试过:

val markerGraphicsOverlay = selectedMarker?.graphicsOverlay
markerGraphicsOverlay?.opacity = 0.1f

但结果相同。

1 个答案:

答案 0 :(得分:1)

将符号PictureMarkerSymbol

if (selectedGraphic!= null && selectedGraphic?.symbol != null) {
    val pictureMarkerSymbol = selectedGraphic?.symbol as PictureMarkerSymbol
}