arcgis runtime100(九、十课时)
目录
- 信息展示
- Symbols(样式) and renderers(渲染器)
- Simple (web) symbols
- XAML定义symbols
- C#定义symbols
- Picture symbols
- Multilayer (advanced) symbols
- 应用一个符号到一个图形
- Renderers
- Simple renderer
- Symbols(样式) and renderers(渲染器)
信息展示
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(九、十课时)相关推荐
- ArcGIS应用(十九)Arcgis 统计分析计算多波段图像最大值、最小值、平均值等
1.计算目的 计算多波段图像中,每个象元对应位置的所有波段值的最大值,最小值平均值等参数信息. 使用场景,比如计算时间序列遥感指数的最大值.假如有三个时间的NDVI指数,我们需要计算三个时间的最大值图 ...
- Arcgis应用(十)矢量图形坐标变换方法Spatial Adjustment 之相似变换详解
1.相似变换原理 图形的相似变换是指由一个图形到另一个图形,在改变的过程中保持形状不变(大小方向和位置可变)的图形[百度百科]. 相似变换简称相似.欧几里得几何中的一类变换.任意两点P.Q与其像点P' ...
- ArcGIS应用(十四)Arcgis 生成要素子集Subset Feature
1.效果 从已经存在的数据集中生成数据子集,比如已有n各随机点数据的图层,我们从中随机选取50%,及n/2数量的点数据.也可以是面图层数据. 原数据 子集数据(50%) 2.使用数据 使用<Ar ...
- ArcGIS 实验理论基础十五 空间查询
实验15 空间查询 实验目的 了解不同空间查询方法的特点 掌握空间查询的常用方法 实验内容 采用不同的空间查询方法开展空间查询,包括基于空间特征.属性特征.空间位置.空间关系等的查询 实验原理 空间查 ...
- HTML5第十课时,会员卡号返利练习
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 软件工程——读书笔记(八/九/十)
第八章 在本章中着重介绍了需求分析的具体流程及内容,在以往我们往往只是认为这仅仅只是通过市场调研,通过数据的分析便可以开始一个项目或是对一个项目进行优化.而今却是认识到了其实一次好的需求分析并不是仅靠 ...
- ArcGIS 实验理论基础十六 缓冲区分析
实验16 缓冲区分析 实验目的 理解缓冲区分析的原理 掌握缓冲区建立和缓冲区分析的基本方法 实验内容 某房地产准备开发一个住宅小区,需要对城市噪声进行分析,拟通过计算各地的噪声强度找出受噪声影响较小的 ...
- ArcGIS 实验理论基础十四 空间数据库的建立
实验14 空间数据库的建立 实验目的 了解空间数据库的数据组织 掌握空间数据库建立的基本方法和过程 实验内容 建立地理数据库 实现矢量数据和栅格数据的一体化管理 实验原理 地理数据库可以存储矢量数据和 ...
- [Python从零到壹] 五十九.图像增强及运算篇之图像锐化Scharr、Canny、LOG实现边缘检测
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
最新文章
- RDKit | PD/PD-L1抑制活性 化合物指标分析
- html messagebox确定取消,Element MessageBox弹框的具体使用
- Android NDK调试定位错误
- TensorFlow Lite 正式发布,谷歌移动端深度学习框架
- C语言 程序代码编写规范
- 会计云课堂实名认证后怎么更改_离职了,税务局的会计信息还是我,老板就不更改,怎么办?...
- python实现批量更改xml文件中内容替换
- Debian9 安装MySQL 以及普通用户获得root权限安装sudo
- c++语言boolean例子,C++语言——99个常见编程编程 学习小结
- 王方月 - 《君王2》与cocos2d-x的邂逅
- 对.gpx文件进行地图坐标系转换
- UE4蓝图基础04-变量和数组
- SCARA四轴机器人丝杆花键_视频图文为你揭秘SCARA机器人!马了备用!
- navicat ssh postgresql 报错:no password supplied
- 最全的硬盘修复专题帖(转贴)
- word批注怎么删除计算机名字,Word批注怎样删掉用户名
- 增强 扫描王 源码_OpenCV探索之路(二十二):制作一个类“全能扫描王”的简易扫描软件...
- python股票分析论文_股票分析与资产组合(python)
- 计算机专业座谈会问题,我院计算机专业开展专业抽检主题座谈会
- Linux 操作必备 150 个命令,速度收藏~