gis软件设计实验报告(4)

2019-04-09 11:04

《GS软件设计》实习报告

}

private void cboPageToPrinterMapping_Click(object sender, EventArgs e) {

axPageLayoutControl1.Page.PageToPrinterMapping = (esriPageToPrinterMapping)cboPageToPrinterMapping.SelectedIndex; UpdatePrintPageDisplay(); UpdatePrintingDisplay(); } } }

地图输出功能

p. 添加导出地图菜单项。双击菜单项添加响应函数:

IHookHelper layout_hookHelper = new HookHelperClass(); layout_hookHelper.Hook = this.axPageLayoutControl1.Object ExportMapForm EMFrm = new ExportMapForm(layout_hookHelper); EMFrm.ShowDialog(); 新建Windows窗体:

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text;

using System.Windows.Forms; using ESRI.ArcGIS.Carto;

using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Output; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Geometry;

using System.Text.RegularExpressions; using ESRI.ArcGIS.Controls;

namespace _bxwMap {

public partial class ExportMapForm : Form {

15

《GS软件设计》实习报告

private double pWidth, pHeight;

private IActiveView pActiveView = null;

public ExportMapForm(IHookHelper hookHelper) {

InitializeComponent();

pActiveView = hookHelper.ActiveView; }

private void btnSave_Click(object sender, EventArgs e) {

this.saveFileDialog1.ShowDialog();

this.txtFileName.Text = saveFileDialog1.FileName; }

private void cmdOK_Click(object sender, EventArgs e) {

this.Cursor = Cursors.WaitCursor; if (!IsNumbericA(txtWidth.Text)) {

MessageBox.Show(\请输入数字!\错误\MessageBoxButtons.OK, MessageBoxIcon.Error); txtWidth.Focus(); return; }

if (!IsNumbericA(txtHeight.Text)) {

MessageBox.Show(\请输入数字!\错误\MessageBoxButtons.OK, MessageBoxIcon.Error); txtHeight.Focus(); return; }

if (txtResolution.Value > 1) {

ExportTool(); }

this.Cursor = Cursors.Default; }

private void ExportTool() {

IExport pExport = null;

IWorldFileSettings pWorldFile = null; IExportImage pExportType;

IEnvelope pDriverBounds = null;

ESRI.ArcGIS.Display.tagRECT userRECT = new

16

《GS软件设计》实习报告

ESRI.ArcGIS.Display.tagRECT();

IEnvelope pEnv = new EnvelopeClass(); int lResolution;

lResolution = Convert.ToInt32(this.txtResolution.Value); switch

(this.saveFileDialog1.Filter.ToString().Trim().Substring(0, 3)) {

case \

pExport = new ExportJPEGClass(); break; case \

pExport = new ExportBMPClass(); break; case \

pExport = new ExportGIFClass(); break; case \

pExport = new ExportTIFFClass(); break; case \

pExport = new ExportPNGClass(); break; case \

pExport = new ExportEMFClass(); break; case \

pExport = new ExportPDFClass(); break; case \

pExport = new ExportAIClass(); break; case \

pExport = new ExportSVGClass(); break; default:

pExport = new ExportJPEGClass(); break; }

if (this.txtFileName.Text.ToString().Trim() != \ {

if

(System.IO.File.Exists(this.txtFileName.Text.ToString()) == true) {

17

《GS软件设计》实习报告

MessageBox.Show(\该文件已经存在,请重新命名!\ this.txtFileName.Text = \ this.txtFileName.Focus(); } else {

pExport.ExportFileName = this.txtFileName.Text; pExport.Resolution = lResolution;

pExportType = pExport as IExportImage; pExportType.ImageType =

esriExportImageType.esriExportImageTypeTrueColor; pEnv = pActiveView.Extent;

pWorldFile = (IWorldFileSettings)pExport; pWorldFile.MapExtent = pEnv;

pWorldFile.OutputWorldFile = false; userRECT.top = 0; userRECT.left = 0;

userRECT.right = Convert.ToInt32(pWidth); userRECT.bottom = Convert.ToInt32(pHeight); pDriverBounds = new EnvelopeClass(); pDriverBounds.PutCoords(userRECT.top, userRECT.bottom, userRECT.right, userRECT.top);

pExport.PixelBounds = pDriverBounds;

ITrackCancel pTrackCancel = new TrackCancelClass(); pActiveView.Output(pExport.StartExporting(), lResolution, ref userRECT, pActiveView.Extent, pTrackCancel); pExport.FinishExporting();

MessageBox.Show(\打印图片保存成功!\保存\MessageBoxButtons.OK);

this.Close(); }

} else {

MessageBox.Show(\请保存文件!\ } }

private void showWH(double pW, double pH) {

pWidth = Convert.ToDouble((pW / 2.54) * Convert.ToDouble(txtResolution.Value));

pHeight = Convert.ToDouble((pH / 2.54) * Convert.ToDouble(txtResolution.Value));

18

《GS软件设计》实习报告

if (this.radioButton1.Checked == true) {

this.txtWidth.Text = Convert.ToDouble(pW / 2.54).ToString(\

this.txtHeight.Text = Convert.ToDouble(pH / 2.54).ToString(\ }

else if (this.radioButton2.Checked == true) {

this.txtWidth.Text = pW.ToString(\ this.txtHeight.Text = pH.ToString(\ } else {

this.txtWidth.Text = pW.ToString(\ this.txtHeight.Text = pH.ToString(\ } }

#region 通用函数

private bool IsNumbericA(string v) {

return ((this.IsIntegerA(v)) || (this.IsFloatA(v))); }

private bool IsFloatA(string v) {

string pattern = @\ Regex reg = new Regex(pattern); return reg.IsMatch(v); }

private bool IsIntegerA(string v) {

string pattern = @\ Regex reg = new Regex(pattern); return reg.IsMatch(v); }

#endregion

private void frmResource_FormClosing(object sender, FormClosingEventArgs e) {

if (e.CloseReason == CloseReason.UserClosing) {

e.Cancel = true; this.Hide();

19


gis软件设计实验报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:城市轨道交通车辆转向架故障检修

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: