目录

  • 信息展示

    • Symbols(样式) and renderers(渲染器)

      • Simple (web) symbols
      • XAML定义symbols
      • C#定义symbols
      • Picture symbols
      • Multilayer (advanced) symbols
      • 应用一个符号到一个图形
    • Renderers
      • Simple renderer

信息展示

Symbols(样式) and renderers(渲染器)

Simple (web) symbols

样式类 Geometry Description
SimpleMarkerSymbol point, multipoint 修饰图形的单点和多点
PictureMarkerSymbol point, multipoint 修饰的图片的单点或多点
SimpleLineSymbol polyline 修饰预定义样式的多段线
SimpleFillSymbol polygon, envelope 填充预定义样式的多边形和视口
TextSymbol point, multipoint, polyline, polygon 展示字体

XAML定义symbols

<Grid.Resources><ResourceDictionary><!--Define symbols in the Resources section (of a UIControl, Page, or App)--><esri:SimpleMarkerSymbol x:Key="RedCircleSym" Color="Red" Style="Circle"  Size="14"/><esri:SimpleLineSymbol x:Key="DashedGreenLineSym" Color="Green" Style="Dash" Width="3"/><esri:SimpleFillSymbol x:Key="BlueDiagonalHashFillSym" Color="Blue" Style="ForwardDiagonal" Outline="{StaticResource DashedGreenLineSym}"/></ResourceDictionary>
</Grid.Resources>

C#定义symbols

// 创建一个SimpleMarkerSymbol
var markerSym = new SimpleMarkerSymbol
{Style = SimpleMarkerSymbolStyle.Circle,Color = Colors.Red,Size = 12
};// 创建一个TextSymbol
var textSym = new TextSymbol
{Angle = -55,Color = Colors.Red,Size = 18,Text = "You are here",HorizontalAlignment = Esri.ArcGISRuntime.Symbology.HorizontalAlignment.Left,VerticalAlignment = Esri.ArcGISRuntime.Symbology.VerticalAlignment.Bottom
};// 用SimpleMarkerSymbol创建一个点
var pointGraphic = new Graphic(point, markerSym);//用TextSymbol创建一个文字
var textGraphic = new Graphic(point, textSym);// 把文字和点添加到MapView
var graphics = MyMapView.GraphicsOverlays[0].Graphics;
graphics.Add(pointGraphic);
graphics.Add(textGraphic);

Picture symbols

PictureMarkerSymbol

// 用本地图片新建一个PictureMarkerSymbol
var picPath = @"C:\Temp\campsite.png";
PictureMarkerSymbol pictureMarkerSym;
using (System.IO.FileStream picStream = new System.IO.FileStream(picPath, System.IO.FileMode.Open))
{// 通过文件流去创建PictureMarkerSymbolpictureMarkerSym = await PictureMarkerSymbol.CreateAsync(picStream);
}// 创建Graphic并添加到MapView
var graphic = new Graphic(location, pictureMarkerSym);
MyMapView.GraphicsOverlays[0].Graphics.Add(graphic);
graph LR
本地文件-->PictureMarkerSymbol
URL-->PictureMarkerSymbol
项目资源-->PictureMarkerSymbol
Json-->PictureMarkerSymbol

Multilayer (advanced) symbols

Multilayer symbols are based on a subset of ArcGIS Pro's symbology model

  • ==ArcGIS Pro的符号子集==
  • ==multilayer symbols可以保证转换web地图服务时web symbols不丢失==

应用一个符号到一个图形

// 定义一个web墨卡托坐标系下的地图点
var point = new MapPoint(-226773, 6550477, SpatialReferences.WebMercator);// 创建一个红颜色的SimpleMarkerSymbol
var markerSym = new SimpleMarkerSymbol
{Style = SimpleMarkerSymbolStyle.Circle,Color = Colors.Red,Size = 12
};// 创建一个Graphic用刚创建的符号
var pointGraphic = new Graphic(point, markerSym);// 添加到MapView
MyMapView.GraphicsOverlays[0].Graphics.Add(pointGraphic);

==应用符号于一个图形会代替任何此图形所在图层的渲染器==

Renderers

Simple renderer

XAML

<Grid Grid.Column="1"><Grid.Resources><ResourceDictionary><!--Define a red "X" marker symbol--><esri:SimpleMarkerSymbol x:Key="RedXSym" Color="Red" Style="X" Size="10"/><!--Define a simple renderer that uses the symbol above--><esri:SimpleRenderer x:Key="MySimpleRenderer" Symbol="{StaticResource RedXSym}"/></ResourceDictionary></Grid.Resources><esri:MapView x:Name="MyMapView"><esri:MapView.GraphicsOverlays><esri:GraphicsOverlay x:Name="MyGraphics" Renderer="{StaticResource MySimpleRenderer}"/></esri:MapView.GraphicsOverlays><esri:Map><esri:ArcGISTiledLayer Name="Topographic"Source="http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/></esri:Map></esri:MapView>
</Grid>

Unique value renderer

// 创建一个ServiceFeatureTable
var statesFeatureTable = new ServiceFeatureTable(new System.Uri("https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3"));
// 创建一个OutFields用来渲染图层中的多边形
//statesFeatureTable.OutFields.Add("STATE_ABBR");
// 用ServiceFeatureTable创建一个要素图层
var statesLayer = new FeatureLayer(statesFeatureTable);// 创建一个新的UniqueValueRenderer
var stateRenderer = new UniqueValueRenderer();
// 添加一个"STATE_ABBR"字段给UniqueValueRenderer
stateRenderer.FieldNames.Add("STATE_ABBR");// 定义唯一填充符号
var nevadaFillSymbol = new SimpleFillSymbol(SimpleFillSymbolStyle.Solid, Colors.Blue, null);
var arizonaFillSymbol = new SimpleFillSymbol(SimpleFillSymbolStyle.Solid, Colors.Green, null);
var californiaFillSymbol = new SimpleFillSymbol(SimpleFillSymbolStyle.Solid, Colors.Red, null);// 添加符号到渲染器
stateRenderer.UniqueValues.Add(new UniqueValue("Nevada", "Nevada", nevadaFillSymbol, "NV"));
stateRenderer.UniqueValues.Add(new UniqueValue("Arizona", "Arizona", arizonaFillSymbol, "AZ"));
stateRenderer.UniqueValues.Add(new UniqueValue("California", "California", californiaFillSymbol, "CA"));var defaultFillSymbol = new SimpleFillSymbol(SimpleFillSymbolStyle.Null, Colors.Transparent, null);
stateRenderer.DefaultSymbol = defaultFillSymbol;
stateRenderer.DefaultLabel = "Other";// 应用渲染器
statesLayer.Renderer = stateRenderer;
// MapView添加图层
MyMapView.Map.OperationalLayers.Add(statesLayer);

视频资料

转载于:https://www.cnblogs.com/tom110/p/8564678.html

arcgis runtime100(九、十课时)相关推荐

  1. ArcGIS应用(十九)Arcgis 统计分析计算多波段图像最大值、最小值、平均值等

    1.计算目的 计算多波段图像中,每个象元对应位置的所有波段值的最大值,最小值平均值等参数信息. 使用场景,比如计算时间序列遥感指数的最大值.假如有三个时间的NDVI指数,我们需要计算三个时间的最大值图 ...

  2. Arcgis应用(十)矢量图形坐标变换方法Spatial Adjustment 之相似变换详解

    1.相似变换原理 图形的相似变换是指由一个图形到另一个图形,在改变的过程中保持形状不变(大小方向和位置可变)的图形[百度百科]. 相似变换简称相似.欧几里得几何中的一类变换.任意两点P.Q与其像点P' ...

  3. ArcGIS应用(十四)Arcgis 生成要素子集Subset Feature

    1.效果 从已经存在的数据集中生成数据子集,比如已有n各随机点数据的图层,我们从中随机选取50%,及n/2数量的点数据.也可以是面图层数据. 原数据 子集数据(50%) 2.使用数据 使用<Ar ...

  4. ArcGIS 实验理论基础十五 空间查询

    实验15 空间查询 实验目的 了解不同空间查询方法的特点 掌握空间查询的常用方法 实验内容 采用不同的空间查询方法开展空间查询,包括基于空间特征.属性特征.空间位置.空间关系等的查询 实验原理 空间查 ...

  5. HTML5第十课时,会员卡号返利练习

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. 软件工程——读书笔记(八/九/十)

    第八章 在本章中着重介绍了需求分析的具体流程及内容,在以往我们往往只是认为这仅仅只是通过市场调研,通过数据的分析便可以开始一个项目或是对一个项目进行优化.而今却是认识到了其实一次好的需求分析并不是仅靠 ...

  7. ArcGIS 实验理论基础十六 缓冲区分析

    实验16 缓冲区分析 实验目的 理解缓冲区分析的原理 掌握缓冲区建立和缓冲区分析的基本方法 实验内容 某房地产准备开发一个住宅小区,需要对城市噪声进行分析,拟通过计算各地的噪声强度找出受噪声影响较小的 ...

  8. ArcGIS 实验理论基础十四 空间数据库的建立

    实验14 空间数据库的建立 实验目的 了解空间数据库的数据组织 掌握空间数据库建立的基本方法和过程 实验内容 建立地理数据库 实现矢量数据和栅格数据的一体化管理 实验原理 地理数据库可以存储矢量数据和 ...

  9. [Python从零到壹] 五十九.图像增强及运算篇之图像锐化Scharr、Canny、LOG实现边缘检测

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. RDKit | PD/PD-L1抑制活性 化合物指标分析
  2. html messagebox确定取消,Element MessageBox弹框的具体使用
  3. Android NDK调试定位错误
  4. TensorFlow Lite 正式发布,谷歌移动端深度学习框架
  5. C语言 程序代码编写规范
  6. 会计云课堂实名认证后怎么更改_离职了,税务局的会计信息还是我,老板就不更改,怎么办?...
  7. python实现批量更改xml文件中内容替换
  8. Debian9 安装MySQL 以及普通用户获得root权限安装sudo
  9. c++语言boolean例子,C++语言——99个常见编程编程 学习小结
  10. 王方月 - 《君王2》与cocos2d-x的邂逅
  11. 对.gpx文件进行地图坐标系转换
  12. UE4蓝图基础04-变量和数组
  13. SCARA四轴机器人丝杆花键_视频图文为你揭秘SCARA机器人!马了备用!
  14. navicat ssh postgresql 报错:no password supplied
  15. 最全的硬盘修复专题帖(转贴)
  16. word批注怎么删除计算机名字,Word批注怎样删掉用户名
  17. 增强 扫描王 源码_OpenCV探索之路(二十二):制作一个类“全能扫描王”的简易扫描软件...
  18. python股票分析论文_股票分析与资产组合(python)
  19. 计算机专业座谈会问题,我院计算机专业开展专业抽检主题座谈会
  20. Linux 操作必备 150 个命令,速度收藏~

热门文章

  1. moblin----intel 操作系统尝试
  2. 流媒体协议之RTSP详解
  3. 20170408 mofan pandas:code lesson 06
  4. Hyperledger Fabric 官方最新翻译---目录(基于fabric release-1.1 版本)
  5. Linux菜鸟必知必会的命令集合
  6. 使用lombok,参数名称第二个字母大写导致参数接收不到
  7. 无人驾驶、人脸识别……人工智能时代正在到来,我们该如何应对
  8. 使用jnative调用c语言动态库对接华视电子身份证阅读机
  9. 新年伊始SIMCOM芯讯通2021年代理商大会在沪召开
  10. 壁纸大全:10张高清的2012年12月桌面日历壁纸免费下载