2

mitab.dll を使用して MapInfo ファイル (*.tab + friends) を読み取ります。これらのファイルには、単純なポリラインと曲線が含まれている場合があります。これまでのところ、これら 2 つを区別できず、すべてをポリラインとして読み取ることができませんでした。これら 2 つの行タイプのどちらを読んでいるかを判断できるようにする 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 を使用する他のソリューションを使用します。)

4

1 に答える 1

0

両方の線種が存在しますか?

あなたはいくつかのサイトに質問を投稿しましたが、どうやら回答が得られなかったようで、Mitab のオンライン ドキュメントには曲線ポリゴンやスプラインについても言及されていないため、ポリラインに特徴的な曲線があるかどうか疑問に思います。

于 2015-03-23T23:38:26.227 に答える