procedure TFrmTrack.AddPosition();
var
i, j: integer;
st, strMapName: string;
Radius:double;
begin
if not DM1.qryTrace.eof then //如果还没到末尾
begin
x1:=DM1.qryTrace.Fields[6].value;
y1:=DM1.qryTrace.Fields[7].value;
{假设中国地图上有:“面省界 ”,"面地区界","面县界","乡镇"等几个图层}
begin
for i:=0 to Map2.Layers.Count-1 do
begin
st := Map2.Layers.Item(i+1).Name;
if st = '面省界' then
begin
Map2.Layers.Item(i+1).Selection.SelectByPoint(x1, y1, miSelectionNew);
for j:=0 to Map2.Layers.Item(i+1).Selection.Count - 1 do
begin
// AF := Map1.Layers.Item(i+1).Selection.Item(j+1);
strMapName := Map2.Layers.Item(i+1).Selection.Item(j+1).Name;
break;
end;
end;
end;
for i:=0 to Map2.Layers.Count-1 do
begin
st := Map2.Layers.Item(i+1).Name;
if st = '面地区界' then
begin
Map2.Layers.Item(i+1).Selection.SelectByPoint(X1, y1, miSelectionNew);
for j:=0 to Map2.Layers.Item(i+1).Selection.Count - 1 do
begin
strMapName := strMapName +Map2.Layers.Item(i+1).Selection.Item(j+1).Name;
break;
end;
end;
end;
for i:=0 to Map2.Layers.Count-1 do
begin
st := Map2.Layers.Item(i+1).Name;
if st = '面县界' then
begin
Map2.Layers.Item(i+1).Selection.SelectByPoint(X1, Y1, miSelectionNew);
for j:=0 to Map2.Layers.Item(i+1).Selection.Count - 1 do
begin
strMapName :=strMapName+ Map2.Layers.Item(i+1).Selection.Item(j+1).Name;
break;
end;
end;
end;
for i:=0 to Map2.Layers.Count-1 do
begin
st := Map2.Layers.Item(i+1).Name;
if st = '乡镇' then
begin
Map2.MapUnit := miUnitKilometer;
Radius:=5;
Map2.Layers.Item(i+1).Selection.SelectByRadius(X1, Y1,Radius, miSelectionNew);
for j:=0 to Map2.Layers.Item(i+1).Selection.Count - 1 do
begin
strMapName :=strMapName+ Map2.Layers.Item(i+1).Selection.Item(j+1).Name;
break;
end;
end;
end;
Label5.Caption := strMapName;
end;
DM1.qryTrace.next; //下一条记录
end;
end;