对于 Android,如何在 MapBox 中将多边形之外的区域变灰?
How do I grey out an area outside of a polygon in MapBox for Android?
我目前正在使用 Android v10.3.0 的 MapBox 地图。我的应用程序是用 Kotlin 编写的。
使用 PolygonAnnotation, PolygonAnnotationManager, and PolygonAnnotationOptions 我可以在地图上绘制和着色多边形。
// Create an instance of the Annotation API and get the polygon manager.
val annotationApi = mapView.annotations
val polygonAnnotationManager = annotationApi.createPolygonAnnotationManager()
// Define a list of geographic coordinates to be connected.
val points = listOf(
listOf(
Point.fromLngLat(17.94, 59.25),
Point.fromLngLat(18.18, 59.25),
Point.fromLngLat(18.18, 59.37),
Point.fromLngLat(17.94, 59.37)
)
)
// Set options for the resulting fill layer.
val polygonAnnotationOptions: PolygonAnnotationOptions = PolygonAnnotationOptions()
.withPoints(points)
// Style the polygon that will be added to the map.
.withFillColor("#ee4e8b")
.withFillOpacity(0.4)
// Add the resulting polygon to the map.
polygonAnnotationManager.create(polygonAnnotationOptions)
Map with Polygon
我想对多边形外部的区域进行阴影处理,并使多边形内部的区域不带阴影。我该怎么做?
您可以创建一个占据整个世界的多边形并在该多边形内添加一个洞:
val points = listOf(
listOf(
Point.fromLngLat(-180.0, 90.0),
Point.fromLngLat(180.0, 90.0),
Point.fromLngLat(180.0, -90.0),
Point.fromLngLat(-180.0, -90.0),
Point.fromLngLat(-180.0, 90.0)
),
listOf(
Point.fromLngLat(17.94, 59.25),
Point.fromLngLat(18.18, 59.25),
Point.fromLngLat(18.18, 59.37),
Point.fromLngLat(17.94, 59.37),
Point.fromLngLat(17.94, 59.25)
)
)
我目前正在使用 Android v10.3.0 的 MapBox 地图。我的应用程序是用 Kotlin 编写的。
使用 PolygonAnnotation, PolygonAnnotationManager, and PolygonAnnotationOptions 我可以在地图上绘制和着色多边形。
// Create an instance of the Annotation API and get the polygon manager.
val annotationApi = mapView.annotations
val polygonAnnotationManager = annotationApi.createPolygonAnnotationManager()
// Define a list of geographic coordinates to be connected.
val points = listOf(
listOf(
Point.fromLngLat(17.94, 59.25),
Point.fromLngLat(18.18, 59.25),
Point.fromLngLat(18.18, 59.37),
Point.fromLngLat(17.94, 59.37)
)
)
// Set options for the resulting fill layer.
val polygonAnnotationOptions: PolygonAnnotationOptions = PolygonAnnotationOptions()
.withPoints(points)
// Style the polygon that will be added to the map.
.withFillColor("#ee4e8b")
.withFillOpacity(0.4)
// Add the resulting polygon to the map.
polygonAnnotationManager.create(polygonAnnotationOptions)
Map with Polygon
我想对多边形外部的区域进行阴影处理,并使多边形内部的区域不带阴影。我该怎么做?
您可以创建一个占据整个世界的多边形并在该多边形内添加一个洞:
val points = listOf(
listOf(
Point.fromLngLat(-180.0, 90.0),
Point.fromLngLat(180.0, 90.0),
Point.fromLngLat(180.0, -90.0),
Point.fromLngLat(-180.0, -90.0),
Point.fromLngLat(-180.0, 90.0)
),
listOf(
Point.fromLngLat(17.94, 59.25),
Point.fromLngLat(18.18, 59.25),
Point.fromLngLat(18.18, 59.37),
Point.fromLngLat(17.94, 59.37),
Point.fromLngLat(17.94, 59.25)
)
)