美文网首页
第一次渲染(MapWinGis)

第一次渲染(MapWinGis)

作者: YBshone | 来源:发表于2017-06-07 14:48 被阅读0次

MapWinGis使用

一、改善缩放功能

上一版本放大缩小都必须点击下工具栏的放大、缩小。是鼠标处于缩放状态,此时必须单击鼠标左右键才能缩放。现在采用滚轮滚动时候就能缩放,操作比较方便。其实只需加载一个鼠标滚轮事件,在其设置即可。

private void AddLayer()       
{     
    this.MouseWheel+=new MouseEventHandler(Map_MouseWheel);        
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)        
{//滚轮缩放事件释放            
    this.MouseWheel -= new MouseEventHandler(Map_MouseWheel);        
}
private void Map_MouseWheel(object sender, MouseEventArgs e)        
{            
bool result = axMap1.Focus();            
if (result)           
 {                
         axMap1.ZoomIn(0.0005 * e.Delta);            
}            
   axMap1.set_ShapePointType(layerHandle2, 0, MapWinGIS.tkPointType.ptImageList);
        }
滚轮缩放图: MapWinGis滚轮缩放图

二、渲染各种图层

现在就针对加载的两个图层进行渲染,一个点图层(各省市),一个面图层(中国)。填充颜色、设置边框、点大小即可。橙色图层整个中国,蓝色为边框,红色为各省市。

//渲染      
private void btnRender_Click(object sender, EventArgs e)        
{           
   axMap1.set_ShapeLayerDrawFill(layerHandle1, true);            
   fillcolor = (uint)ColorTranslator.ToOle(Color.Orange);            
   linecolor = (uint)ColorTranslator.ToOle(Color.Blue);            
   linewidth = 2.0F;            
//图层一(面)填充颜色、边框线颜色、线宽            
   axMap1.set_ShapeLayerFillColor(layerHandle1, fillcolor);            
   axMap1.set_ShapeLayerLineColor(layerHandle1, linecolor);            
   axMap1.set_ShapeLayerLineWidth(layerHandle1, linewidth);
           
 //图层二(点)点的颜色、大小         
   axMap1.set_ShapeLayerPointColor(layerHandle2, pointcolor);            
   axMap1.set_ShapeLayerPointSize(layerHandle2, pointsize);        
}
渲染后的图: 渲染各种图层

三、显示文本MapWinGis的一大缺点就是只支持点、线、面图层,无法自行设置添加文本图层这个SuperMap比较起来还是存在着很大的缺陷,这时地图上的信息就没法丰富了。可以自行往它所在的dbf文件内添加列。讲信息存放在这里,然后就可读取设置每个图层所要显示的Lable。这样就可以一定程度上解决文本的显示功能、丰富地图信息。该文本也支持放大缩小。

//设置文本(具体下次再说里面的代码,根据MapWinGis VB源代码扩展的)        
private void btnShowLable_Click(object sender, EventArgs e)        
{            
    ShowLable.GetLable(shpFile2, layerHandle2, axMap1);        
}

显示文本图:


MapWinGis显示文本

四、为点图层设置图片

点图层的每个Shape元素,默认的都是一个圆圈,大小可自行设置。此时可以通过设置点的类型丰富地图。该图片可自行添加,支持多种格式的图片,缺点在于改图片不支持放大缩小。后期将会针对这一缺点进行改进。使其支持矢量式的放大、缩小。

private void btnSetImage_Click(object sender, EventArgs e)        
{//设置点类型    
   MapWinGIS.Image image = new MapWinGIS.Image();            
   string fileName=Application.StartupPath + @"\MapIcon\City2.png";            
   image.Open(fileName, MapWinGIS.ImageType.PNG_FILE, false, null);            
   image.TransparencyColor =(uint)ColorTranslator.ToOle(Color.White);            
   image.UseTransparencyColor = true;            
   axMap1.set_ShapeLayerPointType(layerHandle2, tkPointType.ptUserDefined);            
   axMap1.set_UDPointType(layerHandle2, image);        
}
设置图片后的图: MapWinGis为点图层设置图片

相关文章

  • 第一次渲染(MapWinGis)

    MapWinGis使用 一、改善缩放功能 上一版本放大缩小都必须点击下工具栏的放大、缩小。是鼠标处于缩放状态,此时...

  • 基于MapWinGIS开发探索(一)--初始

    地图引擎 前言 地理信息系统GIS(Geographic Information System)是储存和处理与地理...

  • useEffect完全指南笔记

    1. 渲染过程 第一次: React: 给我状态为0时候的UI 你的组件: 给你需要渲染的内容: 记得在渲染之后调...

  • 数据渲染后执行函数

    mounted:function(){ this.$nextTick(function(){ 此处填第一次渲染完成...

  • 2018-07-15 Vue源码解析阅读笔记

    Vue的异步组件 异步组件实现的本质是 2 次渲染,除了 0 delay 的高级异步组件第一次直接渲染成 load...

  • react 组件的生命周期

    第一次被渲染时 1.constructor2.getInitialState3.getDefaultProps4....

  • SAP Spartacus focus directive增强之

    界面第一次渲染: 为何Tencent Auto HandleFocus被调用了两次?并且第一次调用时,first ...

  • Vue异步组件

    1.什么是异步组件? 异步组件就是定义的时候什么都不做,只在组件需要渲染(组件第一次显示)的时候进行加载渲染并...

  • vue 异步组件

    什么是异步组件? 异步组件就是定义的时候什么都不做,只在组件需要渲染(组件第一次显示)的时候进行加载渲染并缓存,缓...

  • Vue computed、watch

    Vue computed、watch watch 监听 immediate第一次渲染时是否执行函数 deep监听对...

网友评论

      本文标题:第一次渲染(MapWinGis)

      本文链接:https://www.haomeiwen.com/subject/skuofxtx.html