动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 软件工程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 软件工程 ]的信息



本月文章推荐
.企业信息化大路子是不是搞反了?.
.实现基于IDEA算法的加密工具(5).
.Rational统一过程.
.BEA新任亚太区总经理 曾任惠普软.
.SOA破解集成难题 向新一代软件架.
.Deming的质量管理十大原则.
.3DS模型Bump Map(凹凸贴图)渲染.
.UML建模风格之状态图.
.Apache APR可移植运行库简介(1).
.利用GDI+的双缓冲技术来提高绘图.
.项目沟通管理与会议管理问题.
.UML组件图详解.
.利用代间差分遗传算法优化分形图.
.企业管理软件的需求描述方法.
.游戏引擎剖析(十一).
.最先进的技术:Workflow Foundat.
.XAML开发入门之创建XAML应用程序.
.BEA和Siebel共推SOA.
.ASP 判断 URL 查询字段, 显示相关.
.壮士断臂 Borland为生存将出售开.

.NET中微软地图MapPoint2004编程简介

发表日期:2008-3-23 |


引言

  假如你还不了解微软的MapPoint相关产品和服务,建议去看一下MSDN上的《MapPoint 2004 与 MapPoint Web 服务,该使用哪一个》这篇文章,这里为了给读者一个初步印象,引用其中的一段话。本文介绍的是如何结合.NET开发环境开发基于MapPoint 2004的应用。

  MSDN中关于MapPoint 2004的叙述:

  MapPoint 2004 是一个桌面地图信息工具,它可以提供奇妙和丰富的用户体验,具有专题图形、区域治理、路线优化和人口统计数据等功能。所有必要的数据都安装在本地,因此不需要网络连接。对于 MapPoint 2004,您可以方便地使用多种常见格式(Microsoft Excel、Microsoft Access、开放数据库连接 (ODBC) 等)导入数据,并使用专题图形(如图 1 所示的饼形图)以图形方式显示这些信息。

.NET中微软地图MapPoint2004编程简介(图一)

  使用 MapPoint,您可以采用若干种开发方式:

  ·创建 COM 外接程序以扩展 MapPoint 的功能。

  ·使用 MapPoint 附带的 ActiveX 控件将图形嵌入到您自己的 Microsoft Visual Basic 应用程序中。

  ·在其他应用程序(例如,Microsoft Word 或 Excel)中使用 Microsoft Visual Basic for Applications 自动实现 MapPoint 和其他应用程序之间的连接。

  ·使用 Visual Basic(或任何其他与 COM 兼容的编程语言)创建自动执行 MapPoint 的可执行文件或动态链接库 (DLL)。

  以上内容节选自MSDN。

  正文

  简介

  MapPoint 2004给程序员提供了丰富的对象模型来开发强大的商业化的智能地图定位应用。不过它是基于COM的思想设计的,所以假如你使用.NET Framework来编写应用程序的话,你必须结合使用COM的类库。

  本文通过开发一个地址查找程序,讲解了如何一步步是使用.NET Framework来开发基于MapPoint 2004的应用,同时也介绍了开发时需要注重的一些地方和解决方法。

  使用MapPoint2004编程

  就像前文所说,你必须结合使用MapPoint COM库,才能使用微软的.NET Framework进行编程。假如你使用Visual Studio .NET,你可以在创建新工程之后,选择project树型列表项中的Add Reference选项来添加:

.NET中微软地图MapPoint2004编程简介(图二)

  当看到Add Reference对话框窗口出现时,选择COM的Tab页,并且从列表中选择Microsoft MapPoint 11.0 Object Library ( )来添加一个对MapPoint2004类型库的引用,如下:

.NET中微软地图MapPoint2004编程简介(图三)

  下面,开始编写C#程序,首先需要引进MapPoint 2004命名空间:

//Add MapPoint namespace
using MapPoint;
  引入命名空间之后,使用起MapPoint类型就非常方便了。

  下一步是创建一个MapPoint 2004的应用对象:

//Define an application instance
ApplicationClass app = null;
//Create an application class instance
app = new ApplicationClass();
  MapPoint 2004应用实例(application instance)提供了一个活动的地图实例来完成面向地图定位的人物,这个例子里我将使用这个实例来查找一个地址。

//Now get the location
FindResults frs = app.ActiveMap.FindAddressResults(" ", " ", string.Empty, "WA", "", null);
  你可能已经注重到了,FindAddressResults方法返回的FindResults是一个查询到的地点的集合,有两种方法可以从FindResults实例中获取地点的列表:

  1. 获取一个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;
 }
}
  2. 使用get/set访问方法来用索引获得地点。这个方法在你需要获得某个非凡项但又不想循环整个列表时比较有用。如查找第一个相符合的记录:

//Define an index
object index = 1;
//Access the location item using the accessor method
location = frs.get_Item(ref index) as Location;
  这里必须使用get_Item和set_Item方法进行按照索引对记录进行的操作。

  最后当你做完上述的操作之后,你必须记住要关闭应用程序对象,来确保MapPoint 2004的应用程序实例不会保留在内存中,可以使用如下代码:

//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 > 0)
 {
  object index = 1;
  location = frs.get_Item(ref index) as Location;
  //Male the MapPoint 2004 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.geoShowByRegion1,
   GeoCombineDataBy.geoCombineByDefault,
   GeoDataRangeType.geoRangeTypeDiscreteLogRanges,
   GeoDataRangeOrder.geoRangeOrderDefault, 15, 3,
   missing, missing, missing, missing, missing);
  结束语

  以上简单介绍了使用MapPoint 2004及在.NET开发环境下编程的一些知识,假如有爱好使用MapPoint 2004进行地图相关的开发,可以去参考MSDN和http://www.mp2kmag.com/网站上的相关教程。


下一篇:.NET中加密和解密的实现方法 人气:388
浏览全部软件工程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号