想利用delphi在gst中的layer中查询地名,比如一个城市名称。
利用代码如下:
procedure TForm2.SearchForCapital(Capital: String);
var
  FoundF:FindFeature;
  //在小城市层查
begin
  FoundF := Map1.Layers.Item['US Minor Cities'].Find.Search(Capital, EmptyParam); //在us minor cities层中查找capital
  if (FoundF.FindRC mod 10)=1 then
  begin
  Map1.Layers.Item['US Minor Cities'].Selection.Replace(FoundF);
  Map1.Zoom := 60; //60英里
  Map1.CenterX := FoundF.CenterX;
  Map1.CenterY := FoundF.CenterY;
  end
  else
  Application.MessageBox('No exact match found.','Nope',0);
end;但是这段代码 Map1.Layers.Item['US Minor Cities'].Selection.Replace(FoundF);
提示没有“Replace”函数,我也不知道这句代码是什么意思,
有哪位大大帮忙看看的吗?谢谢了

解决方案 »

  1.   

    按提示的意思 Map1.Layers.Item['US Minor Cities'].Selection下属的函数没有Replace
    在Selection后输入 点 。即可看到相关函数。记得按F1查看帮助。不过我倒觉得好像是写这个程序的人自己写的类。
      

  2.   

    看代码应该是 按名字精确查找,查到后高亮显示查到的结果(把找到的元素,在图层中设为选中),并移动视区及比例尺没装mapx了,也没法帮你看为啥没“Replace”了。
      

  3.   

    谢谢两位,确实没有replace函数,不知道有没有其他的函数能代替啊?这句代码前面已经可以查找到地名数据了,有没有其他方法把查找到的属性、坐标等信息提取出来啊?
      

  4.   

    有木有可能是mapx的版本问题,你的这个版本没有replace,有木有,有木有!