ArcGIS Mobile 自定义图层在绘制面时节点未绘制完全的问题
ArcGIS Mobile 自定义图层在绘制面时节点未绘制完全,如下图:
面的绘制代码如下:
public void Draw(Display dis, Pen p1, Pen p2,Pen p3 ,SolidBrush b1,Map map)
{
Envelope env = map.GetExtent();
if (_mapPoints.Count >= 2)
{
for (int i = 0; i < _mapPoints.Count - 1; i++)
{
if (env.Contains(_mapPoints[i].Coor))
_mapPoints[i].Draw(dis, p1, b1,map);
if (env.Contains(_mapPoints[i].Coor) || env.Contains(_mapPoints[i + 1].Coor))
dis.DrawLine(p2, _mapPoints[i].Coor, _mapPoints[i + 1].Coor);
}
if (env.Contains(_mapPoints[_mapPoints.Count - 1].Coor))
_mapPoints[_mapPoints.Count - 1].Draw(dis, p1, b1,map);
if (env.Contains(_mapPoints[_mapPoints.Count - 1].Coor) || env.Contains(_mapPoints[0].Coor))
dis.DrawLine(p3, _mapPoints[0].Coor, _mapPoints[_mapPoints.Count - 1].Coor);
}
else if (_mapPoints.Count == 1)
{
_mapPoints[0].Draw(dis, p1, b1,map);
}
else if (_mapPoints.Count <= 0)
{
return;
}
}
其中,节点的绘制代码如下:
public void Draw(Display dis, Pen pen, SolidBrush brush,Map map)
{
System.Drawing.Point p = map.ToClient(_coor);
System.Drawing.Point pbl = new System.Drawing.Point(p.X - 3 * 2 / CGbParas.per, p.Y + 3 * 2 / CGbParas.per);
System.Drawing.Point prt = new System.Drawing.Point(p.X + 3 * 2 / CGbParas.per, p.Y - 3 * 2 / CGbParas.per);
dis.DrawEllipse(pen, brush, new Envelope(map.ToMap(pbl), map.ToMap(prt)));
}
节点不显示,应该从地图刷新的地方找问题。检查代码发现Map_MouseDown中添加节点时的地图刷新使用的是Map.Invalidate(Envelope)方法,代码如下:
_polygon.AddMapPoint(_coorMouseDown);
map1.Invalidate(_polygon.GetExtent(true));
问题就是出在map1.Invalidate(_polygon.GetExtent(true))。该行代码指定map只刷新面状地物的数据框区域,导致绘制到数据框外面的节点没有显示出来,因此只需要将刷新的数据框扩大一些即可。
Envelope env = _polygon.GetExtent(true);
env.XMax = env.XMax * 1.01;
env.XMin = env.XMin * 0.99;
env.YMax = env.YMax * 1.01;
env.YMin = env.YMin * 0.99;
map1.Invalidate(env);
上面只是一种方式,也可以使用Envelope.Resize方法调整Envelope。
ArcGIS Mobile 自定义图层在绘制面时节点未绘制完全的问题的更多相关文章
- ArcGis For Silverlight API,地图显示Gis,绘制点,线,绘制图等--绘制点、线、圆,显示提示信息
ArcGis For Silverlight API,地图显示Gis,绘制点,线,绘制图等--绘制点.线.圆,显示提示信息 /// <summary> /// 绘制界面上的点和线 /// ...
- Arcgis engine 指定图层对要素进行创建、删除等操作
Arcgis engine 指定图层创建点要素 在指定的图层上创建一个点要素,点要素的位置是通过X,Y坐标指定的,下面是具体的注释 .其中 和IFeatureClassWrite接口有关的代码不要好像 ...
- ArcGIS制图——多图层道路压盖处理
[1] 启动ArcMap,载入各道路要素类.生成名为All-Roads的图层组,如他所看到的,符号级别绘制将对图层组内图层符号起作用: 图层组设置符号等级 [2] 在内容列表中,右 ...
- 【百度地图API】如何自定义地图图层?实例:制作麻点图(自定义图层+热区)
原文:[百度地图API]如何自定义地图图层?实例:制作麻点图(自定义图层+热区) 摘要:自定义地图图层的用途十分广泛.常见的应用,比如制作魔兽地图和清华校园地图(使用切图工具即可轻松实现).今天我们来 ...
- ios中自定义图层的2种方法
1:自定义图层,在图层中画图 #import <QuartzCore/QuartzCore.h> @interface MJLayer : CALayer @end #import &qu ...
- openlayers自定义图层控制的实现
好久没写博文了,今天出来冒个泡. 最近一直在考虑一件事情,那就是openlayers中自定义wms的图层控制.用过openlayers的人都知道,在openlayers中有自带的图层控制的控件,调用方 ...
- Matlab 语谱图(时频图)绘制与分析
Matlab 语谱图(时频图)绘制与分析 语谱图:先将语音信号作傅里叶变换,然后以横轴为时间,纵轴为频率,用颜色表示幅值即可绘制出语谱图.在一幅图中表示信号的频率.幅度随时间的变化,故也称" ...
- QT使用painter绘制文字时的居中显示
在窗体上绘制文字时,在paintEvent()方法里用QPainter进行绘制. 主要获取对字符串打印在屏幕上时占用的像素大小 QPainter p(this); QFont font("宋 ...
- 自定义 ThreadPoolExecutor 处理线程运行时异常
自定义 ThreadPoolExecutor 处理线程运行时异常 最近看完了ElasticSearch线程池模块的源码,感触颇深,然后也自不量力地借鉴ES的 EsThreadPoolExecutor ...
随机推荐
- 使用 gRPCurl 调试.NET 5的gPRC服务
介绍 你用过 Curl 吗?这个工具允许你通过 http 来发送数据,现在有一个适用于gGRPC的工具,gRPCurl,在本文中,我将介绍如何下载安装这个工具,然后通过这个工具调试我们.NET 5上面 ...
- linux系统中set、env、export关系
set 用来显示shell变量(包括环境变量.用户变量和函数名及其定义),同时可以设置shell选项来开启调试.变量扩展.路径扩展等开关env 用来显示和设置环境变量export 用来显示和设置导出到 ...
- Python批量 png转ico
Python 批量 png 转 ico 一.前言: 首先说一下ico文件的作用:ico是windows的图标文件格式,可以用于浏览器首段图标显示,也可以用于Windows软件.我的话一般用来美化文件夹 ...
- Vitis下载安装尝试
Vitis下载安装记录 一.下载安装 文章目录 一.下载安装 提示:以下是本篇文章正文内容,下面案例可供参考 一.下载安装 首先本次下载主要使用的是linux系统,所以我们先看一下Vitis支持的li ...
- 前端开发好帮手,eslint配置全知道
eslint让人又爱又恨,原因在于它的默认配置非常严格,动则一个小提示就直接报错不给运行.而在开发调试的过程中,我们想时时得到运行效果,它的严格又很烦. 在安装eslint后,我们可以在package ...
- 1.5V转3.3V升压电路图和1.5V转3.3V的电源芯片
1.5V转3.3V的电路图需要材料:PW5100芯片,2个贴片电容,1个贴片电感.即可组成一个DC-DC同步升压高效率电路图,可提供稳定的3.3V输出电压. 1.5V转3.3V的电源芯片 1.5V转3 ...
- linux自定义位置安装tomcat8.5
1 下载tomcat安装文件 下载地址:https://tomcat.apache.org/download-80.cgi 2 解压文件 tar -zxvf apache-tomcat-8.5.56 ...
- JavaScript中的异步函数
JavaScript中的异步函数 ES8 的 async/await 旨在解决利用异步结构组织代码的问题.为此, ECMAScript 对函数进行了扩展,为其增加了两个新关键字: async 和 aw ...
- git 分支合并时如何忽略某个文件
[转]git 分支合并时如何忽略某个文件 - 神奇的旋风 - 博客园 https://www.cnblogs.com/xuan52rock/p/13268872.html Git - git-merg ...
- lodash的debounce函数的使用
最新,在react新项目的开发中使用到了lodash类库的debounce方法,就随手梳理了一下此方法的方便之处 未使用debounce之前 如果不考虑使用debounce,那么在用户连续点击的情况之 ...