知识大全 微软地图MapPoint2004编程简介(图)

Posted

篇首语:知识是使人类快乐的主要因素之一。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 微软地图MapPoint2004编程简介(图)相关的知识,希望对你有一定的参考价值。

微软地图MapPoint2004编程简介(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  如果你还不了解微软的MapPoint相关产品和服务 建议去看一下MSDN上的《MapPoint 与 MapPoint Web 服务 该使用哪一个》这篇文章 这里为了给读者一个初步印象 引用其中的一段话 本文介绍的是如何结合 NET开发环境开发基于MapPoint 的应用     MSDN中关于MapPoint 的叙述     MapPoint 是一个桌面地图信息工具 它可以提供奇妙和丰富的用户体验 具有专题图形 区域管理 路线优化和人口统计数据等功能 所有必要的数据都安装在本地 因此不需要网络连接 对于 MapPoint 您可以方便地使用多种常见格式(Microsoft Excel Microsoft Access 开放数据库连接 (ODBC) 等)导入数据 并使用专题图形(如图 所示的饼形图)以图形方式显示这些信息    >   >    使用 MapPoint 您可以采用若干种开发方式     ·创建 外接程序以扩展 MapPoint 的功能     ·使用 MapPoint 附带的 ActiveX 控件将图形嵌入到您自己的 Microsoft Visual Basic 应用程序中     ·在其他应用程序(例如 Microsoft Word 或 Excel)中使用 Microsoft Visual Basic for Applications 自动实现 MapPoint 和其他应用程序之间的连接     ·使用 Visual Basic(或任何其他与 兼容的编程语言)创建自动执行 MapPoint 的可执行文件或动态链接库 (DLL)     以上内容节选自MSDN      正文    简介    MapPoint 给程序员提供了丰富的对象模型来开发强大的商业化的智能地图定位应用 不过它是基于的思想设计的 所以如果你使用 NET Framework来编写应用程序的话 你必须结合使用的类库     本文通过开发一个地址查找程序 讲解了如何一步步是使用 NET Framework来开发基于MapPoint 的应用 同时也介绍了开发时需要注意的一些地方和解决方法      使用MapPoint 编程    就像前文所说 你必须结合使用MapPoint 库 才能使用微软的 NET Framework进行编程 如果你使用Visual Studio NET 你可以在创建新工程之后 选择project树型列表项中的Add Reference选项来添加    >   >    当看到Add Reference对话框窗口出现时 选择的Tab页 并且从列表中选择Microsoft MapPoint Object Library ( )来添加一个对MapPoint 类型库的引用 如下    >   >    下面 开始编写C#程序 首先需要引进MapPoint 命名空间     //Add MapPoint namespace  using MapPoint;    引入命名空间之后 使用起MapPoint类型就非常方便了     下一步是创建一个MapPoint 的应用对象     //Define an application instance  ApplicationClass app = null;  //Create an application class instance  app = new ApplicationClass();    MapPoint 应用实例(application instance)提供了一个活动的地图实例来完成面向地图定位的人物 这个例子里我将使用这个实例来查找一个地址     //Now get the location  FindResults frs = app ActiveMap FindAddressResults( string Empty WA null);    你可能已经注意到了 FindAddressResults方法返回的FindResults是一个查询到的地点的集合 有两种方法可以从FindResults实例中获取地点的列表      获取一个enumerator并且枚举整个地点的列表 如果你想提供符合条件的地址的列表这样的方式比较有用     //Get an enumerator  IEnumerator ienum = frs GetEnumerator();  //Loop through the enumerator  while(ienum MoveNext())    Location loc = ienum Current as Location;  if(loc != null)    //process the location  string s = loc StreetAddress Value;         使用get/set访问方法来用索引获得地点 这个方法在你需要获得某个特殊项但又不想循环整个列表时比较有用 如查找第一个相符合的记录     //Define an index  object index = ;  //Access the location item using the accessor method  location = frs get_Item(ref index) as Location;    这里必须使用get_Item和set_Item方法进行按照索引对记录进行的操作     最后当你做完上述的操作之后 你必须记住要关闭应用程序对象 来确保MapPoint 的应用程序实例不会保留在内存中 可以使用如下代码     //Quit the application  if(app != null)  app Quit();  app = null;    以下代码完整的列出了一个根据上文的方法 查找地址的函数     //Define an application instance  ApplicationClass app = null;  //Define a location instance  Location location = null;  //Define a FindResults instance  FindResults frs = null;  try    //Create an application class  app = new ApplicationClass();  //Now get the location  frs = app ActiveMap FindAddressResults( string Empty WA null);  //Check if the find query is succesfull  if(frs != null && frs Count > )    object index = ;  location = frs get_Item(ref index) as Location;  //Male the MapPoint application visible  //and go to that location  app Visible = true;  location GoTo();  //Do your processing with the location  MessageBox Show(location StreetAddress Value);      catch(Exception ex)    string message = ex Message;    finally    if(app != null)    try    app Quit();    catch    //This means your app has already quit!    finally    app = null;           需要注意的地方    使用可选参数的方法进行编程    当你使用有可选参数的方法时 如果你没有传递有效的参数 你必须使用缺失类型System Reflection Missing Value 比如DisplayDataMap函数如下     DisplayDataMap([DataMapType] [DataField] [ShowDataBy] [CombineDataBy] [DataRangeType] [DataRangeOrder] [ColorScheme] [DataRangeCount] [ArrayOfCustomValues] [ArrayOfCustomNames] [DivideByField] [ArrayOfDataFieldLabels] [ArrayOfPushpinSymbols])    可以看到所有的参数都是可选参数 这里就必须用到 NET Framework里的缺失类型了 下面的代码展示了如何使用     //Define a missing value type  object missing = System Reflection Missing Value;  //Use the missing type for optional parameters that are not needed  DataMap mydatamap =  mydataset DisplayDataMap(GeoDataMapType geoDataMapTypeShadedArea   field GeoShowDataBy geoShowByRegion   GeoCombineDataBy geoCombineByDefault   GeoDataRangeType geoRangeTypeDiscreteLogRanges   GeoDataRangeOrder geoRangeOrderDefault   missing missing missing missing missing); cha138/Article/program/Java/hx/201311/26473

相关参考

知识大全 百度地图的街景图是怎么采集到的

百度地图的街景图是怎么采集到的每种地图都有专门的采集车,就是开着这种车每条路都去走一遍,然后摄像存储下来。目前主要记录一二线城市的大道,小地方、小路就可能没有了。百度地图的街景地图是什么时候拍的201

知识大全 求世界地图上韩国朝鲜中国美国那一大部分的高清图

求世界地图上韩国朝鲜中国美国那一大部分的高清图下载一个谷歌地球,自己看就行了呗,全球任意位置都能看,放大可到街道级世界地图上的韩国在1990年中韩建交之前,我国由于众所周知的历史原因一直不承认韩国存在

知识大全 微软面试会问哪些奇怪问题(图)

聪明人愿意和聪明人一起工作,我一向信奉这一点。因为,聪明的人就像一个重力场,智商本身就相当于重力,聪明人与聪明人在一起,会变得更聪明,随之吸引的聪明人就越多,重力场也会变得越来越大。虽然初期在美国招聘

知识大全 我的世界1.7.10版本,在网上下载了地图存档,进入游戏后玩该地图时,玩几分钟游戏就自动退出了

我的世界1.7.10版本,在网上下载了地图存档,进入游戏后玩该地图时,玩几分钟游戏就自动退出了!你有没有在整合包除外的mod中下载其他mod?如果有,那很有可能是mod冲突,但是也有可能是电脑配置不行

知识大全 技术分析:使用Eclipse进行SWT编程(图)

技术分析:使用Eclipse进行SWT编程(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java高级编程:使用打印服务API二(图)

Java高级编程:使用打印服务API二(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  选择

下列是PLC的编程语言的是()

下列是PLC的编程语言的是()A、梯形图B、功能图C、布尔逻辑图D、SAMA图参考答案:ABC

下列是PLC的编程语言的是()

下列是PLC的编程语言的是()A、梯形图B、功能图C、布尔逻辑图D、SAMA图参考答案:ABC

知识大全 Java网络编程之URI、URL研究专题一(图)

Java网络编程之URI、URL研究专题一(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Scala编程语言简介

Scala编程语言简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Scala编程语言近来抓住