程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#進行MapX二次開發之地圖搜索(1)

C#進行MapX二次開發之地圖搜索(1)

編輯:關於C語言

在GIS中,地標或者道路等信息查找是一項很重要的功能,類似於我們查找數據庫記錄那樣,需要模糊 進行匹配,一般來說,找到需要的地標或者道路等地圖元素後,雙擊可以定位到地圖的具體位置,並放大 地圖,類似於Google Map的Fly to功能。

由於地圖的信息是按照層來存儲的,所以我們查找信息 的時候,也是按照一層層來進行檢索,由於MapInfo的地圖一般有很多層,每層進行遍歷會比較花費時間 ,所以一般的專業系統,都只是關系一部分層,我們通常在配置文件中指定感興趣的層名集合,然後查找 的時候,在這些層中查找,這樣可以提高檢索的速度。

我們看看操作層的代碼,是如何實現的。

foreach (string layer in layerNameArray)
{
if  (string.IsNullOrEmpty(layer))
continue;
try
{
#region 每層的查詢
string condition = string.Format("NAME like \"%{0}%\"", SearchLocation);
MapXLib.Layer mapLayer =  TarMap.Layers._Item(layer);
if (mapLayer != null)
{
feature = mapLayer.Search(condition, null);
int count =  feature.Count;
if (feature != null)
{
MapXLib.Dataset ds =  TarMap.DataSets.Add(MapXLib.DatasetTypeConstants.miDataSetLayer, mapLayer, layer,
0,  0, 0, Missing.Value, false);
Dictionary<string, ResultOfSearching>  resultList = new Dictionary<string, ResultOfSearching>();

//To Do 遍 歷特性代碼,待續

TarMap.DataSets.RemoveAll();
}
}
#endregion
}
catch (Exception ex)
{
LogHelper.Error(ex);
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved