不同比例尺下计算固定显示范围/距离 arcengine
来源:互联网 发布:有关重启网络的命令 编辑:程序博客网 时间:2024/05/16 14:32
private void draw()
{
IEnvelope oldEnvelope; //这是默认的一个范围 可自己定义,本人是从Element中获得的;
axMapControl.Map.DistanceUnits=esriUnits.esriMillmeters; //设置距离单位为毫米;
double pixeksOfMill= millToPixels(10); //假设设定的决定距离为10毫米;
double mapDis=CalcMapScale(pixeksOfMill); //转10毫米对应的像素值等于多少地理宽度;
IEnvelope pNewEnvelope=new EnvelopeClass(){XMin=oldEnvelope.XMin-mapDis,YMin=oldEnvelope.YMin-mapDis,XMax=oldEnvelope.XMax+mapdis,YMax=oldEnvelope.YMax+mapDis}; //这就是一个比oldEnvelope长宽都多10毫米的一个范围了;
}
//毫米转像素
private double millToPixels(double mill)
{
Graphics g=Graphics.FromHwnd((IntPtr)AxmapControl1.ActiveView.ScreenDisplay.hWnd);
double pixels=Math.Round(g.DpiX / 25.4 * mill); //1英寸=25.4mm=96DPI,那么1mm=96/25.4DPI
return pixels;
}
//像素转地理距离
private double CalcMapScale(IActiveView activeView,double iDevUnit)
{
double dMapUnit=0.01;
IScreebDisplay pScreenDis=activeView.ScreenDisplay;
if(pSreenDis!=null)
{
IDisplayTransformation pDisTra=pScreenDis.DisplayTransformation;
tagRECT rect=pDisTra.get_DiviceFrame();
int iPixelWid=rect.right-rect.left; //像素个数
IEnvelope pEnvelope=activeView.Extent; //当前地图视图的地理宽度
dMapUnit=pEnvelope.Width / iPoxelWid * iDevUnit; // iDevUnit个像素代表的地理宽度
return dMapUnit;
}
}
- 不同比例尺下计算固定显示范围/距离 arcengine
- Delphi ArcEngine 创建比例尺
- Arcengine 计算两个面之间的距离
- flex+gis显示地图的比例尺,坐标,地图显示范围
- NSString 计算显示范围
- ArcEngine 反距离权重插值法计算简单地面高程
- ArcEngine输出当前显示范围为JPG图像
- ArcGIS 不同范围显示不同标注
- 转载:固定表格布局下的各浏览器对与表格宽度计算算法不同
- [ArcEngine地图制图系列]—添加比例尺
- 地图比例尺的计算
- 计算文字在固定宽度下 折行显示后的高度
- 页面向下滚动一定距离显示固定搜索框
- gdal_translate数据转换解决影像在Geoserver发布后不同比例尺下颜色变化问题
- ArcEngine栅格范围专题图
- ArcEngine添加指北针、比例尺、图例(注意UID值)
- ArcMap设置默认比例尺显示
- 经纬度距离等相关计算的不同语言实现
- 【poj 1942】Paths on a Grid 组合数学
- VA_X配置Snippet,自定义注释方式
- java使用篇—解析json数组
- iOS颜色进制转换
- DBM 与DBM的区别
- 不同比例尺下计算固定显示范围/距离 arcengine
- 第5周项目1-三角形类雏形(5)
- 第5周项目5人物角色类
- win7 桌面图标显示不正常
- 第三周1个人所得税
- redis统计APP在线人数
- iOS 手机||平板判断
- 项目1——三角形类4
- 第五周项目1-三角形类雏形(2)