关于mapx查找的疑问,百思不得其解 ( 积分: 50 )

  • 主题发起人 主题发起人 liangxiliang
  • 开始时间 开始时间
L

liangxiliang

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个图层“省”和“市”分别存放省和市的图元,我想查出ID=1234的省所包含的城市,
本以为用如下代码就可以轻松搞定,但Features.count返回的值为0,表示找不到任何城市,实际上ID=1234的省确实[:(]包含多个城市啊。望各位大侠指教。(“省”和“市”这两个图层都已经建有索引)
var
Features: CMapXFeatures;
//用于在"市"图层中查找
S: CMapXFindFeature;
//用于在"省"图层中查找
begin

S:= map1.Layers.Item('省').find.Search('1234', EmptyParam);
if S.FindRC mod 10 = 1 then

begin

Features := map1.Layers.Item('市').SearchWithinFeature(S,miSearchTypeCentroidWithin);
showmessage(IntToStr(Features.count));
end;

end;
 
有两个图层“省”和“市”分别存放省和市的图元,我想查出ID=1234的省所包含的城市,
本以为用如下代码就可以轻松搞定,但Features.count返回的值为0,表示找不到任何城市,实际上ID=1234的省确实[:(]包含多个城市啊。望各位大侠指教。(“省”和“市”这两个图层都已经建有索引)
var
Features: CMapXFeatures;
//用于在"市"图层中查找
S: CMapXFindFeature;
//用于在"省"图层中查找
begin

S:= map1.Layers.Item('省').find.Search('1234', EmptyParam);
if S.FindRC mod 10 = 1 then

begin

Features := map1.Layers.Item('市').SearchWithinFeature(S,miSearchTypeCentroidWithin);
showmessage(IntToStr(Features.count));
end;

end;
 
to: liangxiliang
你没有指定查询用的数据集和关键字段
 
to:ljmwh
我用Layer.find.Search方法可以正确找到ID=1234的省的图元,但用SearchWithinFeature方法却无法找到ID=1234的省里面的市。你说我没有指定查询用的数据集和关键字段,能具体说一说吗?(我用的是mapx4.5,这两个图层都只有一个字段:ID,数据都存放在图层中)
 
to: liangxiliang
你可能没有弄清楚 Layer.find.Search 和 SearchWithinFeature 的区别。
建议你读一下MapX随机帮助文件中有关这两个方法的叙述,然后再读一下MapX自带的下面两个例子:
D:/Program Files/MapInfo/MapX 4.0/Samples40/Delphi/FIND
D:/Program Files/MapInfo/MapX 4.0/Samples40/Delphi/SEARCH
之后,你的问题就可以解决了。
 
后退
顶部