代码如下:
这个是我写的用于查询地名的函数:public void AddResultList(string layerName,string DM)//layername表示图层名字,DM表示地名(关键字)
{
MapXLib.Layer lyr = mainForm1.amapMain.Layers._Item(layerName);
MapXLib.FindResult Found = lyr.Find.SearchEx(DM, "");
this.listResult.Items.Clear();
if (Found.Matches != null)
{
for (int i = 1; i <= Found.Matches.Count; i++)
{
this.listResult.Items.Add(Found.Matches[i].Name);//将查询的结果添加到listbox中 }
}
}我想稍作修改应该就可能使用了吧,你自己改吧,我懒得帮你改了。
这个是我写的用于查询地名的函数:public void AddResultList(string layerName,string DM)//layername表示图层名字,DM表示地名(关键字)
{
MapXLib.Layer lyr = mainForm1.amapMain.Layers._Item(layerName);
MapXLib.FindResult Found = lyr.Find.SearchEx(DM, "");
this.listResult.Items.Clear();
if (Found.Matches != null)
{
for (int i = 1; i <= Found.Matches.Count; i++)
{
this.listResult.Items.Add(Found.Matches[i].Name);//将查询的结果添加到listbox中 }
}
}我想稍作修改应该就可能使用了吧,你自己改吧,我懒得帮你改了。
解决方案 »
- C#操作磁条读卡器,那个高手会的,请教一下!
- 如下需求,望指点一下
- 关于对象类型的问题
- 猴王算法
- 高难提交问题,无法提交
- winform里的dataGridView里有没有asp.net1.1中datagrid的ItemCreated或类似的事件啊?
- 两个文件夹的比对.
- 当dataGrid移动到新的一行用什么事件?
- C#中出现“集合已修改;可能无法执行枚举操作”错误,怎么解决
- 用farpoint for .net v4.0做的程序, 发布在64位的windows server 2008 的服务器上报错,请问是服务器64位的问题吗?
- 关于c#.NET的SVM回归算法实现
- vs2005中怎样让panel隐藏时不占位页面位置
如果是你自己添加的图层,需要用到搜索功能的话,那么我建议你用ACCESS数据库来保存这些自己添加的图层信息。那么搜索的时候就直接在ACCESS数据库中查找,找到后,根据从数据库中获得的经纬度信息,定位到地图上就可以了。
对于这个地图,我们有另一个C++的项目,它的模糊查询是这样写的: layer = m_pMapX->GetLayers().Item(layername);
layer.BeginAccess(miAccessRead);
vtLayer.vt = VT_DISPATCH;
vtLayer.pdispVal = layer.m_lpDispatch;
ds = m_pMapX->GetDatasets().Add(miDataSetLayer,vtLayer,layername);
rs.CreateDispatch(rs.GetClsid());
r.CreateDispatch(r.GetClsid());
CString strValue;
if (!CXMLShare::NodeRead(m_GeosetPath.Left(m_GeosetPath.ReverseFind('\\')),"//Root/Map/ROW_ADDR_NAME",strValue))
{
strValue=ROW_ADDR_NAME;
}
strWhere=strValue+_T(" like \"%") + searchStr + _T("%\"");
fs=layer.Search(strWhere);但我把它转换成C#,执行到thisMap.DataSets.Add时报错“字段参数无效”的异常