我正在使用mitab.dll读取MapInfo文件(* .tab +朋友)。这些文件可能包含简单的折线,也可能包含曲线。到目前为止,我无法区分这两者,也无法将所有内容读为折线。是否有任何mitab-API调用可以让我确定我正在读取的这两种线型中的哪一种?

(简体)代码:

procedure HandlePolyline(_Feature: mitab_Feature);
var
  i, j: LongInt;
  pointCount: LongInt;
  partCount: LongInt;
  X, Y: array of Double;
begin
  partCount := FMitabDll.get_parts(_Feature);
  for i := 0 to partCount - 1 do begin
    pointCount := FMitabDll.get_vertex_count(_Feature, i);
    SetLength(X, pointCount);
    SetLength(Y, pointCount);

    for j := 0 to pointCount - 1 do begin
      X[j] := FMitabDll.get_vertex_x(_Feature, i, j);
      Y[j] := FMitabDll.get_vertex_y(_Feature, i, j);
    end;
    // -> Here I have got a polyline, but it might be a curved line, how do I know?
  end;
end;


i := 1;
repeat
  feature := FMitabDll.read_feature(FTabHandle, i);
  FeatureType := FMitabDll.get_type(feature);
  case FeatureType of
    TABFC_Polyline: HandlePolyline(feature);
  end;
  i := FMitabDll.next_feature_id(FTabHandle, i);
  FMitabDll.destroy_feature(feature);
until i = -1;


(这是与Delphi 2077一起使用的,但是我采用了其他使用mitab的解决方案。)

最佳答案

两种线型都存在吗?

由于您在多个站点上发布了问题,并且显然没有任何反应,并且由于Mitab的在线文档中没有提到弯曲的多边形,甚至没有样条线,所以我想知道折线是否具有曲线特征。

关于delphi - 如何区分mitab读取的MapInfo文件中的折线和曲线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27927939/

10-12 17:06