ʵÑé¶þ µØÍ¼ÏÔʾºÍͼ²ã¿ØÖÆ
£¨3ѧʱ£©
ʵÑéÊý¾Ý£º
Çëµ½½Ìʦ¿Î¼þÀïÏÂÔØ¡£ÊµÑéÊý¾ÝΪGIS¿ª·¢¼¼ÊõA\\ʵÑéÖ¸µ¼\\Öеġ°ÊµÑéÊý¾Ý.rar¡±
ʵÑéÄÚÈÝ£º
1. ¼ÓÔØÍ¼²ã¼°Ïà¹Ø²Ù×÷
2. ʹÓÃArcGIS EngineÖзâ×°ºÃµÄ¶ÔÏóʵÏÖµØÍ¼µÄ²Ù×÷ 3. ʹÓÃTocControl¿Ø¼þ¿ØÖÆÍ¼²ã 4. ʹÓÃTextElement»æÖƱê×¢ 5. Ó¥ÑÛͼ¹¦ÄܵÄʵÏÖ
1.¼ÓÔØÍ¼²ã¼°Ïà¹Ø²Ù×÷
1£©Ê¹ÓÃÊôÐÔÏòMapControlÖÐÌí¼Óͼ²ã £¨1£©Ð½¨Ò»¸öÏîÄ¿
Æô¶¯Visual Studio.NET£¬ÔÚ¡¾Îļþ¡¿²Ëµ¥ÖÐÑ¡Ôñ¡¾Ð½¨ÏîÄ¿¡¿£¬ÔÚ¡°Ð½¨ÏîÄ¿¡±¶Ô»°¿òÖÐÑ¡ÔñÏîÄ¿ÀàÐÍΪ¡°Visual C#¡±£¬Ä£°åΪ¡°WindowsÓ¦ÓóÌÐò¡±£¬Ñ¡Ôñ¡°Î»Öá±£¬µã»÷¡°È·¶¨¡±±£´æ¸ÃÏîÄ¿¡£
£¨2£©Ìí¼ÓÑ¡Ï
ÔÚ¡°¹¤¾ßÏ䡱µÄ¿Õ°×´¦µ¥»÷Êó±êÓÒ¼ü£¬ÔÚµ¯³öµÄ¿ì½Ý²Ëµ¥ÖÐÑ¡Ôñ¡°Ìí¼ÓÑ¡Ï¡±£¬È»ºóÔÚÐÂÔöÑ¡ÏÉÏÊäÈë¡°ESRI¿Ø¼þ¡±×÷ΪѡÏ±êÇ©¡£
1
£¨3£©Ìí¼ÓArcGIS Engine¿Ø¼þ
¢ÙÓÒ¼üµã»÷¡°ESRI¿Ø¼þ¡±±êÇ©£¬´Ó¿ì½Ý²Ëµ¥ÖÐÑ¡Ôñ¡°Ñ¡ÔñÏ¡£
¢ÚÔÚµ¯³öµÄ¡°Ñ¡Ôñ¹¤¾ßÏ¶Ô»°¿òÖÐÑ¡Ôñ¡°.NET Framework ×é¼þ¡±Ñ¡Ï£¬Ñ¡ÖС°AxLicenseControl¡±¡¢¡°AxMapControl¡±¡¢¡°AxTOCControl¡±¡¢¡°AxToolbarControl¡±ºÍ¡°AxPageLayoutControl¡±µÈ¸´Ñ¡¿ò£¬µ¥»÷¡°È·¶¨¡±°´Å¥£¬½«ËùÑ¡ÔñµÄ¿Ø¼þÌí¼Óµ½¹¤¾ßÀ¸ÖС£
¢ÛÔÚÏîÄ¿²Ëµ¥ÖÐÑ¡Ôñ¡°Ìí¼ÓÒýÓá±£¬ÔÚµ¯³öµÄ¡°Ìí¼ÓÒýÓá±¶Ô»°¿òÖÐÌí¼ÓÒÔϳ£ÓõÄÀà¿âÒýÓãº
? ESRI.ArcGIS.Carto
2
? ESRI.ArcGIS.Display ? ESRI.ArcGIS.Geometry ? ESRI.ArcGIS.System ? ESRI.ArcGIS.SystemUI
£¨4£©ÔÚ´°ÌåÖÐǶÈëArcGIS Engine¿Ø¼þ
Ë«»÷¹¤¾ßÏäÖеġ°ESRI¡±±êÇ©À¸ÖеÄAxMapControlºÍAxLicenseControl¿Ø¼þ£¬½«ËüÃǶ¼Ìí¼Óµ½´°ÌåÉÏ£¬²¢µ÷ÕûºÃ´óСºÍλÖá£
£¨5£©ÓÒ¼üµ¥»÷MapControl¿Ø¼þ£¬ÔÚµ¯³öµÄ¶Ô»°¿òÖÐÑ¡Ôñ¡¾ÊôÐÔ¡¿
3
£¨6£©ÔÚµ¯³öµÄÊôÐÔÒ³´°ÌåÖÐÌí¼Óͼ²ã
Ìí¼Óͼ²ã
£¨7£©ÔËÐгÌÐò£¬ÏÔʾ½á¹û
2£©Ê¹ÓóÌÐò¶¯Ì¬µØÏòMapControlÖÐÌí¼Óͼ²ã
¢ÙʹÓþø¶Ô·¾¶¼ÓÔØÍ¼²ã£¨Çë˼¿¼ÕâÖÖ¼ÓÔØÍ¼²ãµÄ·½Ê½ÓкξÖÏÞÐÔ£¿£© private void Form1_Load(object sender, EventArgs e) {
axMapControl1.AddShapeFile(\¡°, \ axMapControl1.AddShapeFile(¡°d:\\\\data\\\\world\\\\¡°, \ axMapControl1.AddShapeFile(\¡°, \}
¢ÚʹÓÃÏà¶Ô·¾¶¼ÓÔØÍ¼²ã£¨ÒªÇóͬѧÃÇÖØµãÕÆÎÕÕâÖÖ¼ÓÔØÍ¼²ãµÄ·½Ê½£© private void Form1_Load(object sender, EventArgs e)
4
{
string CurrentPath = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(CurrentPath + \string FilePath = Directory.GetCurrentDirectory();
axMapControl1.AddShapeFile(FilePath, \axMapControl1.AddShapeFile(FilePath, \axMapControl1.AddShapeFile(FilePath, \}
3£©Í¼²ãµÄÏà¹Ø²Ù×÷
£¨1£©·µ»ØÍ¼²ãÃû³Æ
ÔÚÁбí¿òÖÐÏÔʾ³öµØÍ¼Öи÷¸öͼ²ãµÄͼ²ãÃû£¬ÈçÏÂͼËùʾ£º
£¨2£©¿ØÖÆÍ¼²ãµÄÏÔʾ
ͨ¹ý¸´Ñ¡¿ò¿ØÖÆÍ¼²ãµÄÏÔʾÓëÒþ²Ø£¬ÈçÏÂͼËùʾ£º
£¨3£©¿ØÖÆÍ¼²ãµÄÏÔʾ˳Ðò
ͨ¹ýÍ϶¯Áбí¿òÖеÄͼ²ãÃûÀ´¿ØÖÆÍ¼²ãµÄÏÔʾ˳Ðò£¬ÈçÏÂͼËùʾ£º
5
2.ʹÓÃArcGIS EngineÖзâ×°ºÃµÄ¶ÔÏóʵÏÖµØÍ¼µÄ²Ù×÷
Õⲿ·ÖʵÑéÇë¸ÄдʵÑéÒ»ÖеĵØÍ¼²Ù×÷´úÂ룬ÓÃArcGIS EngineÖзâ×°ºÃµÄ¶ÔÏóʵÏÖµØÍ¼µÄ»ù±¾²Ù×÷¡£
1) ³£Óõķâ×°ºÃµÄµØÍ¼²Ù×÷¹¤¾ß£¨Tool£©
¢Ù ¢Ú ¢Û ¢Ü ¢Ý ¢Þ
ControlsMapZoomInToolClass £¨·Å´óµØÍ¼£© ControlsMapZoomOutToolClass £¨ËõСµØÍ¼£© ControlsMapPanToolClass £¨Òƶ¯µØÍ¼£©
ControlsMapZoomPanToolClass £¨Ëõ·Å/Æ½ÒÆµØÍ¼£© ControlsMapIdentifyToolClass £¨µãͼ²éѯ£© ControlsMapMeasureToolClass £¨Á¿²â¹¤¾ß£©
2) ³£Óõķâ×°ºÃµÄµØÍ¼²Ù×÷ÃüÁCommand£©
¢Ù ControlsMapZoomInFixedCommandClass £¨ÖÐÐÄ·Å´óµØÍ¼ÃüÁ
6
¢Ú ¢Û ¢Ü ¢Ý ControlsMapZoomOutFixedCommandClass £¨ÖÐÐÄËõСµØÍ¼ÃüÁ ControlsMapFullExtentCommandClass £¨È«Í¼ÏÔʾÃüÁ ControlsMapZoomToLastExtentBackCommandClass £¨Ç°Ò»ÊÓͼÃüÁ ControlsMapZoomToLastExtentForwardCommandClass£¨ºóÒ»ÊÓͼÃüÁ
3£©´úÂëʾÀý
¢Ùͨ¹ýControlsMapZoomInToolʵÏÖ·Å´óµØÍ¼²Ù×÷
ICommand Cmd;
Cmd=new ControlsMapZoomInToolClass(); Cmd.OnCreate(axMapControl1.Object); axMapControl1.CurrentTool=(ITool)Cmd;
¢Úͨ¹ýControlsMapFullExtentCommandʵÏÖȫͼÏÔʾ
ICommand cmd;
cmd = new ControlsMapFullExtentCommandClass(); cmd.OnCreate(axMapControl1.Object); cmd.OnClick();
3.ʹÓÃTocControl¿Ø¼þ¿ØÖÆÍ¼²ã
1£©°ó¶¨TocControl¿Ø¼þ
TocControl¿Ø¼þÊÇArcGIS EngineÖÐÓÃÀ´¹ÜÀíMapControlÖÐͼ²ãµÄ¿Ø¼þ£¬ËüµÄʹÓ÷dz£¼òµ¥£¬Ö»ÐèÒª°ÑËüºÍ¶ÔÓ¦µÄMapControl¿Ø¼þ½øÐа󶨼´¿É¡£°ó¶¨µÄÁ½ÖÖ·½·¨ÈçÏ£º £¨1£©ÔڿؼþÊôÐÔÖÐÖ±½Ó°ó¶¨
ÓÒ¼üµ¥»÷TocControl¿Ø¼þ£¬ÔÚµ¯³öµÄÊôÐÔÒ³¶Ô»°¿òÖÐÉèÖá°Buddy¡±ÕâÒ»ÏîΪҪ°ó¶¨µÄMapControl¿Ø¼þ£¬ÈçÏÂͼËùʾ£º
7
£¨2£©Ê¹ÓôúÂë½øÐж¯Ì¬°ó¶¨
Ò²¿ÉÒÔͨ¹ý´úÂëµÄ·½Ê½°ÑTocControl¿Ø¼þºÍMapControl¿Ø¼þ½øÐа󶨣¬´úÂëÈçÏ£º axTOCControl1.SetBuddyControl(axMapControl1); 2£©Ê¹ÓÃTocControl¿Ø¼þ¶Ôͼ²ã½øÐи߼¶²Ù×÷
£¨1£©ÐÞ¸Äͼ²ãµÄÃû³Æ
Ê×ÏÈ£¬ÔÚFormµÄLoadʼþÖÐÌí¼ÓÈçϵĴúÂ룺
axTOCControl1.LabelEdit = esriTOCControlEdit.esriTOCControlManual; Æä´Î£¬ÔÚTocControlµÄOnEndLabelEditʼþÖÐÌí¼ÓÒÔÏ´úÂë¼´¿ÉÒÔʵÏÖͼ²ãÃû³ÆµÄÐ޸ģº
private void axTOCControl1_OnEndLabelEdit(object sender, TOCControlEvents_OnEndLabelEditEvent e) {
if (e.newLabel.Trim() == \ {
e.canEdit = false; } }
£¨2£©Í϶¯Í¼²ã¸Ä±äͼ²ãµÄµþ·Å˳Ðò
ÔÚTocControl¿Ø¼þµÄÊôÐÔÒ³Öаѡ°Enable Layer Drag and Drop¡±¸´Ñ¡¿òÑ¡Éϼ´¿ÉÒÔʵÏÖÍ϶¯Í¼²ã¸Ä±äͼ²ã˳ÐòµÄ²Ù×÷¡£
£¨3£©ÔÚTocControlÉϸøÍ¼²ãÌí¼Ó¿ì½Ý²Ëµ¥
Õⲿ·ÖʵÑéÒªÇóÊó±êÓÒ¼üµã»÷TocControl¿Ø¼þµÄ²»Í¬²¿Î»µ¯³ö²»Í¬µÄ¿ì½Ý²Ëµ¥£¬²¢ÊµÏÖÏàÓ¦µÄ¹¦ÄÜ¡£
¢Ù µ±Êó±êÓÒ¼üµ¥»÷TocControl¿Ø¼þÖеĵØÍ¼Í¼±êʱ£¬µ¯³öÈçϵĿì½Ý²Ëµ¥
8
ÇëͬѧÃÇͨ¹ý´úÂëʵÏÖ¿ì½Ý²Ëµ¥ÖеľßÌ幦ÄÜ¡£
¢Ú µ±Êó±êÓÒ¼üµ¥»÷TocControl¿Ø¼þÖеÄij¸öͼ²ãʱ£¬µ¯³öÈçϵĿì½Ý²Ëµ¥
ÇëͬѧÃÇͨ¹ý´úÂëʵÏÖ¿ì½Ý²Ëµ¥ÖеľßÌ幦ÄÜ¡£
4.ʹÓÃTextElement»æÖƱê×¢
Ñ¡Ôñcountryͼ²ã×÷Ϊ±êעͼ²ã£¬ÒÔ¹ú¼ÒÃû½øÐÐͼ²ãµÄ±ê×¢¡£±ê×¢µÄ½á¹ûÈçÏÂͼËùʾ£º
9
5.Ó¥ÑÛͼ¹¦ÄܵÄʵÏÖ
¾ßÌåÒªÇó£º
¢Ù ʵÏÖÓ¥ÑÛͼºÍÖ÷µØÍ¼Í¬Ê±×°ÔØÒ»ÖµÄÊý¾Ý ¢Ú µ±ÔÚÖ÷µØÍ¼ÖнøÐÐËõ·Å¡¢ÂþÓεȲÙ×÷ʱ£¬Í¬Ê±¸üÐÂÓ¥ÑÛͼµ½¶ÔÓ¦µÄ·¶Î§ºÍλÖà ¢Û ÔÚÓ¥ÑÛͼÖеã»÷µØÍ¼»òÕßÍ϶¯¾ØÐοòʱ£¬Ö÷µØÍ¼Äܹ»¶¨Î»µ½¶ÔÓ¦µÄ·¶Î§ºÍλÖÃ
10