想要在地图上绘制,需要一个GraphicsOverlay临时绘制图层
100版本单独把绘制图层拿出来的一个好处就是,它将永远置于地图内容之上。在以前我们如果要在MapView里加载一个新的图层,必须先remove带有图形的FeatureLayer,加载这个图层之后再加载一次带有图形的FeatureLayer,否则我们这个FeatureLayer将会被新加载的图层所覆盖。现在这个问题就不复存在了。
//创建GraphicsOverlay
val graphicsOverlay = GraphicsOverlay()
val graphicsOverlay2 = GraphicsOverlay(GraphicsOverlay.RenderingMode.DYNAMIC)
//添加到地图上
mapView.graphicsOverlays.add(graphicsOverlay)
GraphicsOverlay默认的构造模式一共有两种:DYNAMIC和STATIC,默认的是动态渲染模式DYNAMIC。
当为DYNAMIC模式时候,每当图形有变化时候GraphicsOverlay会立刻更新图形;
而为STATIC模式时候,图形变化了不会马上更新,而是在进行地图的缩放、旋转和平移时候才更新图层,适合于绘制图层里含有大量图形时候使用,以防图形更新太慢影响体验。
符号Symbol
1. 点符号(MarkerSymbol)
PictureMarkerSymbol(图片点符号)
SimpleMarkerSymbol(简单点符号)
TextSymbol(文本符号)
2. 线符号(LineSymbol)
SimpleLineSymbol(简单线符号)
3. 面符号(FillSymbol)
PictureFillSymbol(图片面符号)
SimpleFillSymbol(简单面符号)
渲染Renderer
渲染也是设置图形样式,相比起符号来,渲染就相当于是批量的图形样式设置。但是当渲染和符号同时存在时候,会优先使用符号的样式
ClassBreaksRenderer
HeatmapRenderer
SimpleRenderer
UniqueValueRenderer
UnsupportedRenderer
举例 SimpleRenderer
//创建一个点样式
val pointSymbol = SimpleMarkerSymbol(
SimpleMarkerSymbol.Style.CIRCLE,
Color.RED,
10F
)
// 创建一个渲染器
val pointRenderer = SimpleRenderer(pointSymbol)
//给GraphicOverlay设置渲染器
pointGraphicOverlay.setRenderer(pointRenderer)
val pointGeometry = Point(40e5, 40e5, SpatialReferences.getWebMercator())
val pointGraphic = Graphic(pointGeometry)<