亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

微軟地圖MapPoint2004編程簡介(圖)

2019-11-18 11:58:26
字體:
來源:轉載
供稿:網友


  假如你還不了解微軟的MapPoint相關產品和服務,建議去看一下MSDN上的《MapPoint 2004 與 MapPoint Web 服務,該使用哪一個》這篇文章,這里為了給讀者一個初步印象,引用其中的一段話。本文介紹的是如何結合.NET開發環境開發基于MapPoint 2004的應用。
  
  MSDN中關于MapPoint 2004的敘述:
  
  MapPoint 2004 是一個桌面地圖信息工具,它可以提供奇妙和豐富的用戶體驗,具有專題圖形、區域治理、路線優化和人口統計數據等功能。所有必要的數據都安裝在本地,因此不需要網絡連接。對于 MapPoint 2004,您可以方便地使用多種常見格式(Microsoft Excel、Microsoft access、開放數據庫連接 (ODBC) 等)導入數據,并使用專題圖形(如圖 1 所示的餅形圖)以圖形方式顯示這些信息。
  
 微軟地圖MapPoint2004編程簡介(圖)(圖一)

  
MapPoint 2004

  
  使用 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選項來添加:
  
 微軟地圖MapPoint2004編程簡介(圖)(圖二)

  
MapPoint 2004

  
  當看到Add Reference對話框窗口出現時,選擇COM的Tab頁,并且從列表中選擇Microsoft MapPoint 11.0 Object Library ( )來添加一個對MapPoint2004類型庫的引用,如下:
  
微軟地圖MapPoint2004編程簡介(圖)(圖三)

  
MapPoint 2004

  
  下面,開始編寫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);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美黄色动漫| 久久久999国产精品| 亚洲成人中文字幕| 欧美激情小视频| 欧美激情在线观看视频| 92版电视剧仙鹤神针在线观看| 国产欧美一区二区三区在线看| 亚洲欧美福利视频| 国产精品第一页在线| 性欧美在线看片a免费观看| 久久综合伊人77777尤物| 性欧美长视频免费观看不卡| 97人人爽人人喊人人模波多| 欧美夜福利tv在线| 亚洲精选一区二区| 欧洲亚洲女同hd| 性欧美暴力猛交69hd| 中文字幕精品久久久久| 热re99久久精品国产66热| 国内精久久久久久久久久人| 伊人青青综合网站| 北条麻妃久久精品| 日韩在线欧美在线| 久久躁日日躁aaaaxxxx| 欧美日韩中文在线观看| 亚洲自拍小视频| 夜夜嗨av一区二区三区免费区| 亚洲人成在线观看| 亚洲精品短视频| 亚洲激情视频在线| 亚洲第五色综合网| 国外成人在线视频| 日韩在线观看免费| 亚洲精品wwww| 国产精品午夜国产小视频| 日韩一区二区福利| 日韩高清av一区二区三区| 亚洲丝袜在线视频| 国产激情视频一区| 日韩欧中文字幕| 欧美成人免费全部观看天天性色| 亚洲老头同性xxxxx| 欧美专区在线观看| 亚洲精品国产综合区久久久久久久| 亚洲欧美中文日韩在线v日本| 国产精品99蜜臀久久不卡二区| 精品在线欧美视频| 欧美国产激情18| 1769国内精品视频在线播放| 亚洲精品自产拍| 久久久久久久影视| 亚洲欧美自拍一区| 国产精品久久久久久久久久久久久| 亚洲国产精品悠悠久久琪琪| 一道本无吗dⅴd在线播放一区| 91在线观看免费高清| 亚洲色图激情小说| 欧美日韩亚洲网| 在线成人激情黄色| 精品久久香蕉国产线看观看gif| 77777亚洲午夜久久多人| 国产精品美女免费看| 精品福利樱桃av导航| 欧美性猛交xxxx| 亚洲欧美日本伦理| 中文字幕日韩精品在线| 亚洲最大福利视频网| 欧洲日韩成人av| 丁香五六月婷婷久久激情| 国产精品视频一区二区三区四| 国产女人精品视频| 一区二区三区 在线观看视| 97香蕉久久超级碰碰高清版| 亚洲成人激情视频| 国产精品wwww| 欧美一级视频免费在线观看| 国产热re99久久6国产精品| 国产福利精品在线| 国产精品久久久一区| 91在线中文字幕| 亚洲美女久久久| 国产国语videosex另类| 91精品国产沙发| 久久综合久中文字幕青草| 日韩极品精品视频免费观看| 日韩精品欧美国产精品忘忧草| 亚洲成人精品久久| 日韩精品免费在线视频观看| 亚洲精品99久久久久中文字幕| 欧美精品做受xxx性少妇| 国产日产久久高清欧美一区| 日本一本a高清免费不卡| 国产性猛交xxxx免费看久久| 在线播放日韩专区| 欧美激情一级二级| 欧美成人网在线| 欧美精品免费看| 亚洲国产成人一区| 国产精品国产三级国产aⅴ9色| 亚洲www在线观看| 92版电视剧仙鹤神针在线观看| 国产精品99久久久久久白浆小说| 亚洲欧美一区二区三区在线| 久久久91精品国产| www.亚洲一二| 日韩精品视频免费专区在线播放| 日韩电影在线观看永久视频免费网站| 亚洲视频在线播放| 国产亚洲精品美女久久久| 久久国产精品99国产精| 国产精品白嫩美女在线观看| 久久久精品欧美| 欧美成人免费va影院高清| 中文字幕在线看视频国产欧美| 日韩欧美精品在线观看| 欧美—级高清免费播放| 欧美日韩精品二区| 亚洲jizzjizz日本少妇| 国产日韩欧美在线视频观看| 美女视频久久黄| 国产精品一区二区三区久久| 亚洲精品在线91| 98精品国产自产在线观看| 成人在线免费观看视视频| 国产日韩在线播放| 欧美第一黄色网| 久久久久久国产| 日韩av影视在线| 久久久久久久久久久网站| 高清一区二区三区四区五区| 亚洲日本中文字幕免费在线不卡| 国产精品一区二区三区成人| 国产精品久久99久久| 久久国产天堂福利天堂| 久久中文字幕一区| 国产精品久久久久久av福利软件| 永久免费毛片在线播放不卡| 欧美小视频在线| 亚洲图片欧洲图片av| 欧美床上激情在线观看| 最新的欧美黄色| 国产成人精品免高潮在线观看| 日韩av片免费在线观看| 欧美视频在线观看免费网址| 这里精品视频免费| 亚洲第一精品夜夜躁人人爽| 欧美有码在线观看| 亚洲第一福利在线观看| 97久久精品人搡人人玩| 国产欧美一区二区三区在线| 搡老女人一区二区三区视频tv| 日韩在线免费视频观看| 在线看福利67194| 中文字幕久久久| 91夜夜未满十八勿入爽爽影院| 国产欧美日韩免费看aⅴ视频| 久久久久久久久久久av| 欧美精品在线看| 日韩电影中文字幕在线| 91av视频在线| 久久久久久久久91| 亚洲欧美日韩精品久久奇米色影视| 亚洲va电影大全| 91精品国产九九九久久久亚洲|