IMapDocument interface

Provides access to members that control the reading and writing of map document files.(提供访问的成员,控制读写地图文档文件)

1:MapDocumentClass Class

The MapDocument coclass is used to read and write map document files.(地图文档组件类是用于读写地图文档文件。)实现了IMapDocument接口。

m_MapDocument = new MapDocumentClass();

2:Open Method

[C#]public void Open (string sDocument,string bsPassword);

[C++]HRESULT Open( BSTR sDocument, BSTR bsPassword);

The MapDocument will be cached so no other users will be able to access the MapDocument until it has been closed.(MapDocument将会被缓存,所以没有其他用户可以访问MapDocument,除非它已被关闭。)Before using the Open methods check whether the specified document IsPresentIsRestrictedIsMapDocument and IsPasswordProtected. If the MapDocument is password protected, specify the password in the Open method.

3:MapCount Property

The number of Map objects contained within the map document


// 使用IMapDocument打开文档

IMapDocument m_MapDocument;

private void LoadMapDoc()

{

m_MapDocument = new MapDocumentClass();

try

{

//打开文档对话框选择MXD文件

System.Windows.Forms. OpenFileDialog openFileDialog2;

openFileDialog2 = new OpenFileDialog();

openFileDialog2.Title = "Open Map Document";

openFileDialog2.Filter = "Map Documents (*.mxd)|*.mxd";

openFileDialog2.ShowDialog();

string sFilePath = openFileDialog2.FileName;

//将数据加载到pMapDocument并与MapControl联系起来

m_MapDocument.Open(sFilePath, "");

int i;

int sum = m_MapDocument.MapCount ;

for (i = 0; i <sum; i++)

{

// 一个IMapDocument对象中可能包含很多Map对象,遍历map对象

axMapControl1.Map = m_MapDocument.get_Map(i);

}

// 刷新地图控件

axMapControl1.Refresh();

}

catch ( Exception ex)

{

MessageBox.Show(ex.ToString());

}

}


4:Map Property

[C#]public IMap get_Map (int mapIndex);

[C++]HRESULT get_Map(long mapIndex, IMap** ppMap);

5:IsReadOnly Property

[C#]public bool get_IsReadOnly (string sDocument);

[C++]HRESULT get_IsReadOnly( BSTR sDocument, VARIANT_BOOL* IsReadOnly);

Determines whether the specified file is read only. The Save method cannot overwrite a read-only MapDocument, use the SaveAs to write to a new document.(保存方法不能覆盖只读的地图文件,使用另存为)

6:Save Method

[C#]public void Save (bool bUseRelativePaths, bool bCreateThumnbail);

[C#]Optional Values

bUseRelativePaths Supply true as a default value.(true代码默认值)

bCreateThumnbail Supply true as a default value.

[C++]HRESULT Save(VARIANT_BOOL bUseRelativePaths,VARIANT_BOOL bCreateThumnbail);

7:UsesRelativePaths Property

[C#]public boolUsesRelativePaths {get;}

[C++]HRESULT get_UsesRelativePaths(VARIANT_BOOL* bUsesRelativePaths);文件是

Indicates if the data in the map document is referenced using relative paths.

(表明如果数据在地图文件是使用相对路径引用。)


// 使用IMapDocument保存文档

private void SaveDocument()

{

// 判断文档是否为只读

if (m_MapDocument.get_IsReadOnly(m_MapDocument.DocumentFilename))

{

MessageBox.Show( "This map document is read only!");

return;

}

//用当前的文件路径设置保存文件

m_MapDocument.Save(m_MapDocument.UsesRelativePaths, true);

MessageBox.Show( "Changes saved successfully!");

}


8:SaveAs Method

Save the contents of the map document to the specified file name.

[C#]public void SaveAs (string sDocument, bool bUseRelativePaths, boolbCreateThumnbail);

Optional Values

bUseRelativePaths Supply true as a default value.

bCreateThumnbail Supply true as a default value.


// 地图文档另存为

private void SaveAsDocument ()

{

//Open a file dialog for saving map documents

SaveFileDialog saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.Title = "Save Map Document As";

saveFileDialog1.Filter = "Map Documents (*.mxd)|*.mxd";

saveFileDialog1.ShowDialog();

//Exit if no map document is selected

string sFilePath = saveFileDialog1.FileName;

if (sFilePath == "")

{

return;

}

if (sFilePath == m_MapDocument.DocumentFilename)

{

// 当选择文件和当前文件相同时,保存即可

SaveDocument();

}

else

{

//SaveAs a new document with relative paths

m_MapDocument.SaveAs(sFilePath, true, true);

//Open document

MessageBox.Show( "Document saved successfully!");

}

}

IMapDocument interface

时间: 2024-10-16 18:14:30

IMapDocument interface的相关文章

Adding New Functions to MySQL(User-Defined Function Interface UDF、Native Function)

catalog 1. How to Add New Functions to MySQL 2. Features of the User-Defined Function Interface 3. User-Defined Function 4. UDF Argument Processing 5. UDF Return Values and Error Handling 6. UDF Compiling and Installing 7. Adding a New Native Functio

Interface接口

一.接口及作用 接口是一个非常重要的概念,理解这个,先举一个实现生活中的实例. 现在,电脑主板,有很多插槽,可用来插CPU.内存等.当CPU等元件需要更新换代升级时,只要将CPU单独更换就可以了,而不需要更换主板.其实,主板上的这些暴露在外的插槽,就可以理解为接口. 接口就是对外暴露的规则,只要符合规则的CPU.内存,不论品牌.型号.规格,都可以安插使用. 接口是程序的功能扩展.有了插槽,也就提高了主板的功能扩展性,比如内存不够用了,我们就可以换成内容最大的内存条,或再加新的内存条. 接口降低了

一个Interface 继承多个Interface 的总结

我们知道在Java中的继承都是单继承的,就是说一个父类可以被多个子类继承但是一个子类只能有一个父类.但是一个接口可以被不同实现类去实现,这就是我们说的Java中的多态的概念.下面我们再来说一下接口的多继承的概念,就是说一个接口是可以继承多个接口的. 下面是我们公司自己开发的ORM框架,就用到了接口的多继承的概念. @MybatisRepository public interface BaseQueryDao<T> extends IBaseQueryDao<T>, Dynamic

【翻译】Android Interface Definition Language (AIDL)

参考地址:https://developer.android.com/guide/components/aidl.html Android Interface Definition Language (AIDL) AIDL (Android Interface Definition Language) is similar to other IDLs you might have worked with. It allows you to define the programming inter

JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来聊聊final这个关键字 final可以修饰类,方法和变量 final修饰的类不可以被继承 final修饰的方法不可以被覆盖 final修饰的变量是一个常量,只能被赋值一次 内部类只能访问被final修饰的局部变量 final,故名思意,就是最终的意思,由以上的五种特性,不过final的出现,也是有

重构第9天:提取接口(Extract Interface)

理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口.这样的好处是解除代码间的依赖,降低耦合性. 详解: 先看重构前的代码: 1 public class ClassRegistration 2 { 3 public void Create() 4 { 5 // create registration code 6 } 7 8 public void Transfer() 9 { 10 // class transfer code

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

11)Java abstract class 和 interface

abstract class 和 interface 的区别 ? ? ?含有abstract修饰符的class即为抽象类,abstract 类不能创建实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不一定是抽象的. ? ? ?abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法.如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类

IP unnumbered interface,某个接口不编号,某个接口不分配IP地址

OSPFv2中,提到点到点链路可以是unnumbered,不编号,不分配IP地址 12.4.1.1.  Describing point-to-point interfaces                For point-to-point interfaces, one or more link                descriptions are added to the router-LSA as follows:                o   If the neig