使用GMap控件读取.shp多边形文件(shapefile)
2016-12-06 01:09
721 查看
一、多边形shp文件结构
从此博客:SHP文件结构
其中记录多边形的shp文件简单概括为这张图(看不清楚可以右键图片-在新标签页中打开,或者下载查看)
二、构造GMapPolygon
三、关于内环
GMap控件不支持从一个多边形中“挖洞”的操作,在判断一个marker或点是否位于“正常区域”中(位于外环但不位于内环中)时,可以借助GMapPolygon的IsInside方法
授人以鱼不如授人以渔,我就不给出详细的代码了(这是“我很小气”的一种委婉表达)
从此博客:SHP文件结构
其中记录多边形的shp文件简单概括为这张图(看不清楚可以右键图片-在新标签页中打开,或者下载查看)
二、构造GMapPolygon
//生成一个环 GMapPolygon polygon = new GMapPolygon(points, ""); polygon.Fill = new SolidBrush(Color.FromArgb(55, Color.Orange)); polygon.Stroke = new Pen(Color.Orange, 1); //添加到图层中 /* * 之前的操作,构造一个border图层,专门用来储存polygon,添加到控件的图层集合中 GMapOverlay bor=new GMapOverlay(); this.gMapControl1.Overlays.Add(border); */ border.Polygons.Add(polygon);
三、关于内环
GMap控件不支持从一个多边形中“挖洞”的操作,在判断一个marker或点是否位于“正常区域”中(位于外环但不位于内环中)时,可以借助GMapPolygon的IsInside方法
private bool is_inside(PointLatLng a) { int sum = 0; try { foreach (GMapPolygon polygon in border.Polygons) { if (polygon.IsInside(a)) { sum++; } } } catch (Exception) { return false; } return sum == 1 ? true : false; }
授人以鱼不如授人以渔,我就不给出详细的代码了(这是“我很小气”的一种委婉表达)
相关文章推荐
- [置顶] android开发——使用java读取.shp(shapefile)矢量文件
- 使用 diewald_shapeFileReader 完成 ArcGIS shp文件自动转换为geojson
- 结合C++和GDAL实现shapefile(shp)文件的读取
- 教你读取shapefile格式文件
- yii上传图片、yii上传文件、yii控件activeFileField使用
- Yii上传图片,上传文件,yii控件activefilefield的使用
- yii上传图片、yii上传文件、yii控件activeFileField使用
- 用.NET的File控件上传文件的解决方案(被动解决方案)(本文章来自于互联网,感谢原作者的辛勤劳动,摘抄在此仅作为学习使用!)
- 使用Javascript完成文件操作、添加新项到HTML控件SELECT中、读取SELECT控件中的选定项
- 使用RandomAccessFile来读取不断增长的文件
- 初学Java,IO之使用FileInputStream和FileReader读取文件(四十一)
- asp.net文件上传用到html的file控件,在使用母版页Master,更改form的Enctype=multipart/form-data的方法
- 使用GeoTools读取和绘制Shapefile格式 -- (学习GIS【1】)
- 使用FileReader和FileWriter读取写入文件内容
- 任何的File.ReadAllText()和使用StreamReader读取文件内容之间的差异?
- 使用FileReader和FileWriter读取写入文件内容
- 使用html input(file)控件上传文件
- Java 使用DataInputStream将数据写入文件,使用FileReader读取演示
- yii上传图片、yii上传文件、yii控件activeFileField使用
- IE下使用控件实现读取本地文件功能并显示