地图分幅算法的AE实现.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
地图分幅算法的AE实现

地图分幅算法的AE实现 public enum ScaleMark { A, B, C, D, E, F, G, H };//不同比例尺的号码 private int m_1s1000000_row;//1:100万图幅行 private int m_1s1000000_list;//1:100万图幅列 private int m_assign_row;//指定比例尺图幅行 private int m_assign_list;//指定比例尺图幅列 private int m_scale;//指定比例尺; private FrmGeocodingExport pFGE; private esriUnits m_CurMapUnits; #region 图幅号计算函数 private IEnvelope FromGeocodingDawn() { //计算要素的值 int h = this.m_1s1000000_row ;//1:100万行号 int l = this.m_1s1000000_list ;//1:100万列号 ScaleMark ScaleMark_1s1000000 = new ScaleMark(); IPoint scaleDelta_1s1000000 = new PointClass(); ScaleMark_1s1000000 = 0; this.initialScaleMark(ScaleMark_1s1000000, scaleDelta_1s1000000); double delta_x = scaleDelta_1s1000000.X;//1:100万经差(度) double delta_y = scaleDelta_1s1000000.Y;//1:100万纬差(度) ScaleMark pScaleMark = new ScaleMark(); IPoint scaleDelta = new PointClass(); pScaleMark = (ScaleMark )m_scale ; this.initialScaleMark(pScaleMark , scaleDelta); double delta_xp = scaleDelta.X;//1:10万经差(度) double delta_yp = scaleDelta.Y;//1:10万纬差(度) int hp = m_assign_row; int lp = m_assign_list; IEnvelope pEnvelope = new EnvelopeClass(); if (m_assign_list != 0 m_assign_row != 0) { //进行指定图幅号左上角点经纬度计算 double ymax = h * delta_y - (hp - 1) * delta_yp; //纬度 double xmin = (l - 31) * delta_x + (lp - 1) * delta_xp;//经度 //推算指定图幅号右下角点坐标 double ymin = ymax - delta_yp; double xmax = xmin + delta_xp; //将点转换成地图存储单位Map(Metres) convertUnits //esriUnits CurMapUnits = this.axMapControl1.Map.MapUnits; IUnitConverter UC_map = new UnitConverterClass(); d

文档评论(0)

kaiss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档