安卓智能地图开发与实施十九:符号与渲染器
来源:互联网 发布:淘宝网的域名怎么设置 编辑:程序博客网 时间:2024/05/21 23:39
符号与渲染器
符号与渲染器(Symbols and Renderers),通过色彩值、大小、形状、边线、透明度来表达空间要素的具体含义。如果仅仅有位置,而没有位置上的属性信息,位置也会失去意义,符号与渲染器是呈现位置上属性信息的最直接表达方式。对于Graphic(GraphicsOverlay),可以直接赋值符号或者设置渲染器,而对于Feature(FeatureLayer)只能通过渲染器进行设置。
点符号(MarkerSymbol)
OffsetX
OffsetY
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)
Width
AntiAlias
SimpleLineSymbol
样式:
- DASH
- DASH_DOT
- DASH_DOT_DOT
- DOT
- SOLID
- NULL
颜色(带透明度)
SimpleLineSymbol whiteOutline =new SimpleLineSymbol(SimpleLineSymbol.Style.SOLID, Color.rgb(255, 255, 255), 1);
面符号(FillSymbol)
边线: SimpleLineSymbol
SimpleFillSymbol
样式:
- 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)索要。
- 安卓智能地图开发与实施十九:符号与渲染器
- 安卓智能地图开发与实施二十一:栅格渲染器
- 安卓智能地图开发与实施十六:三维地图
- 安卓智能地图开发与实施四:二维地图的MapView与Layers
- 安卓智能地图开发与实施九:地图缩放与旋转
- 安卓智能地图开发与实施三:创建第一个地图程序
- 安卓智能地图开发与实施十二:空间查询与模糊搜索
- 安卓智能地图开发与实施十三:空间查询与展示
- 安卓智能地图开发与实施十五:离线与同步
- 安卓智能地图开发与实施二十五:Shapefile文件的可视化与编辑
- 安卓智能地图开发与实施二:开发环境准备
- 安卓智能地图开发与实施一:配置离线SDK
- 安卓智能地图开发与实施五:在线基础底图
- 安卓智能地图开发与实施六:离线基础底图
- 安卓智能地图开发与实施七:在线业务图层(浏览查询)
- 安卓智能地图开发与实施八:离线业务图层(浏览查询)
- 安卓智能地图开发与实施十:图层管理
- 安卓智能地图开发与实施十一:业务数据查询
- 设计模式讲解与代码实践(十一)——外观
- eclipse下的mybatis插件:MyBatipse
- Redux源码深度解析
- Android BaseAdapter与BaseExpandableListAdapter封装
- PHP+MySQL中文乱码
- 安卓智能地图开发与实施十九:符号与渲染器
- UVALive 3713 浅谈2-SAT问题图论求解法
- BZOJ 4241 历史研究 (回滚莫队)
- Android ViewPager用法解析
- JDBC高级编程和DAO
- spring学习之---深入理解容器中的Bean
- LCT例题·BZOJ2049洞穴勘测、BZOJ3669魔法森林
- Lexicographically Maximum Subsequence CodeForces
- 1055. The World's Richest (25)