安卓智能地图开发与实施十九:符号与渲染器 - ArcGIS Runtime SDK for Android(Version 100.1.0)
2017-07-21 21:54
531 查看
符号与渲染器
符号与渲染器(Symbols and Renderers),通过色彩值、大小、形状、边线、透明度来表达空间要素的具体含义。如果仅仅有位置,而没有位置上的属性信息,位置也会失去意义,符号与渲染器是呈现位置上属性信息的最直接表达方式。对于Graphic(GraphicsOverlay),可以直接赋值符号或者设置渲染器,而对于Feature(FeatureLayer)只能通过渲染器进行设置。点符号(MarkerSymbol)
OffsetXOffsetY
Angle
边线: SimpleLineSymbol
SimpleMarkerSymbol
样式:
CIRCLE
CROSS
DIAMOND
SQUARE
TRIANGLE
X
颜色(带透明度)
大小
PictureMarkerSymbol
图片:BitmapDrawable(手机存储资源、工程内部Drawable)、URL(网络图片)
PictureMarkerSymbol -手机存储资源
BitmapDrawable pinBlankOrangeDrawable = (BitmapDrawable) Drawable.createFromPath(mPinBlankOrangeFilePath); final PictureMarkerSymbol pinBlankOrangeSymbol = new PictureMarkerSymbol(pinBlankOrangeDrawable); pinBlankOrangeSymbol.setHeight(20); pinBlankOrangeSymbol.setWidth(20); pinBlankOrangeSymbol.setOffsetY(10); //高度的一半 pinBlankOrangeSymbol.loadAsync();
PictureMarkerSymbol -工程内部Drawable
BitmapDrawable pinStarBlueDrawable = (BitmapDrawable) ContextCompat.getDrawable(this, R.drawable.pin_star_blue); final PictureMarkerSymbol pinStarBlueSymbol = new PictureMarkerSymbol(pinStarBlueDrawable); pinStarBlueSymbol.setHeight(40); pinStarBlueSymbol.setWidth(40); pinStarBlueSymbol.setOffsetY(11); pinStarBlueSymbol.loadAsync();
PictureMarkerSymbol - 使用网络图片
final PictureMarkerSymbol campsiteSymbol = new PictureMarkerSymbol( "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Recreation/FeatureServer/0/images/e82f744ebb069bb35b234b3fea46deae"); campsiteSymbol.setHeight(18); campsiteSymbol.setWidth(18); campsiteSymbol.loadAsync();
线符号(LineSymbol)
WidthAntiAlias
SimpleLineSymbol
样式:
DASH
DASH_DOT
DASH_DOT_DOT
DOT
SOLID
NULL
颜色(带透明度)
SimpleLineSymbol whiteOutline = new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.rgb(255, 255, 255), 1);
面符号(FillSymbol)
边线: SimpleLineSymbolSimpleFillSymbol
样式:
BACKWARD_DIAGONAL
FORWARD_DIAGONAL
DIAGONAL_CROSS
HORIZONTAL
VERTICAL
CROSS
SOLID
NULL
颜色(带透明度)
PictureFillSymbol
图片:URL(网络图片)
通过静态方法
(public static ListenableFuture createAsync(final BitmapDrawable drawable))
BitmapDrawable(手机存储资源、工程内部Drawable)
SimpleFillSymbol mSFS = new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID, Color.RED, mPolylinePlacedSymbol);
符号使用
SimpleMarkerSymbol symbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.CIRCLE, Color.RED, 12); Point graphicPoint = new Point(-226773, 6550477, SpatialReferences.getWebMercator()); Graphic graphic = new Graphic(graphicPoint, symbol); graphicsOverlay.getGraphics().add(graphic) Graphic graphic = new Graphic(graphicPoint); graphic.setSymbol(symbol); graphicsOverlay.getGraphics().add(graphic)
渲染器 - 单一符号渲染(SimpleRenderer)
Point pointGeometry = new Point(40e5, 40e5, SpatialReferences.getWebMercator()); SimpleMarkerSymbol pointSymbol = new SimpleMarkerSymbol( SimpleMarkerSymbol.Style.DIAMOND, Color.RED, 10); Graphic pointGraphic = new Graphic(pointGeometry); GraphicsOverlay pointGraphicOverlay = new GraphicsOverlay(); SimpleRenderer pointRenderer = new SimpleRenderer(pointSymbol); pointGraphicOverlay.setRenderer(pointRenderer); pointGraphicOverlay.getGraphics().add(pointGraphic); mMapView.getGraphicsOverlays().add(pointGraphicOverlay);
渲染器 - 唯一值渲染(UniqueValueRenderer)
UniqueValueRenderer uniqueValueRenderer = new UniqueValueRenderer(); uniqueValueRenderer.getFieldNames().add("STATE_ABBR"); SimpleFillSymbol defaultFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.NULL, Color.BLACK, new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.GRAY, 2)); SimpleFillSymbol californiaFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID, Color.RED, new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.RED, 2)); SimpleFillSymbol arizonaFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID, Color.GREEN, new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.GREEN, 2)); SimpleFillSymbol nevadaFillSymbol = new SimpleFillSymbol(SimpleFillSymbol.Style.SOLID,Color.BLUE, new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.BLUE, 2)); uniqueValueRenderer.setDefaultSymbol(defaultFillSymbol); uniqueValueRenderer.setDefaultLabel("Other"); List<Object> californiaValue = new ArrayList<>(); californiaValue.add("CA"); uniqueValueRenderer.getUniqueValues().add(new UniqueValueRenderer.UniqueValue("California", "State of California", californiaFillSymbol, californiaValue)); List<Object> arizonaValue = new ArrayList<>(); arizonaValue.add("AZ"); uniqueValueRenderer.getUniqueValues().add(new UniqueValueRenderer.UniqueValue("Arizona", "State of Arizona", arizonaFillSymbol, arizonaValue)); List<Object> nevadaValue = new ArrayList<>(); nevadaValue.add("NV"); uniqueValueRenderer.getUniqueValues().add(new UniqueValueRenderer.UniqueValue("Nevada", "State of Nevada", nevadaFillSymbol, nevadaValue)); featureLayer.setRenderer(uniqueValueRenderer);
结尾
源程序请自行下载:链接:http://pan.baidu.com/s/1dEDQe4L 密码:vmin
若失效,可发邮件给韩源萌(polyline@126.com)索要。
相关文章推荐
- 安卓智能地图开发与实施二十一:栅格渲染器 - ArcGIS Runtime SDK for Android(Version 100.1.0)
- 安卓智能地图开发与实施二十三:三维场景中的可视化 - ArcGIS Runtime SDK for Android(Version 100.1.0)
- 安卓智能地图开发与实施十八:空间要素绘制 - ArcGIS Runtime SDK for Android(Version 100.1.0)
- 安卓智能地图开发与实施二十二:展示三维场景 - ArcGIS Runtime SDK for Android(Version 100.1.0)
- 安卓智能地图开发与实施十二:空间查询与模糊搜索 - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施二十:栅格图层展示 - ArcGIS Runtime SDK for Android(Version 100.1.0)
- 安卓智能地图开发与实施二十四:关于源代码的放送 - ArcGIS Runtime SDK for Android(Version 100.1.0)
- 安卓智能地图开发与实施十六:三维地图 - ArcGIS Runtime SDK for Android(Version 100.1.0)
- 安卓智能地图开发与实施八:离线业务图层(浏览查询) - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施十七:使用天地图 - ArcGIS Runtime SDK for Android(Version 100.1.0)
- 安卓智能地图开发与实施十五:离线与同步 - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施十:图层管理 - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施七:在线业务图层(浏览查询) - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施十三:空间查询与展示 - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施九:地图缩放与旋转 - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施一:配置离线SDK - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施二:开发环境准备 - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施五:在线基础底图 - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施四:二维地图的MapView与Layers - ArcGIS Runtime SDK for Android(Version 100.0.0)
- 安卓智能地图开发与实施二十五:Shapefile文件的可视化与编辑 - ArcGIS Runtime SDK for Android(Version 100.2.0)