コンテンツにスキップ

ストリーム

ストリームは、中間表現を具体化するのではなく、関数呼び出しを通じてジオメトリを変換することでオーバーヘッドを最小限に抑えます。ストリームは入力ジオメトリを受け取るためにいくつかのメソッドを実装する必要があります。ストリームは本質的にステートフルです。 の意味は、点がの内部にあるかどうかによって異なり、同様に線はポリゴンによってリングと区別されます。「ストリーム」という名前にもかかわらず、これらのメソッド呼び出しは現在同期式です。

geoStream(object, stream)

ソース · 指定された GeoJSON オブジェクトを指定された 投影法ストリームにストリーミングします。フィーチャとジオメトリオブジェクトの両方を入力としてサポートしていますが、ストリームインターフェースはジオメトリのみを記述するため、追加のフィーチャプロパティはストリームには表示されません。

stream.point(x, y, z)

指定された座標xy(およびオプションでz)を持つ点を示します。座標系は指定されておらず、実装に依存します。たとえば、投影ストリームは入力として度単位の球面座標を必要とします。ポリゴンまたは線のコンテキスト外では、点は点ジオメトリオブジェクト(または複数点)を示します。線またはポリゴンリング内では、点は制御点を示します。

stream.lineStart()

線またはリングの開始を示します。ポリゴン内では、リングの開始を示します。ポリゴンの最初のリングは外側のリングであり、通常は時計回りです。後続のリングはポリゴンの穴を示し、通常は反時計回りです。

stream.lineEnd()

線またはリングの終了を示します。ポリゴン内では、リングの終了を示します。GeoJSONとは異なり、リングの冗長な閉鎖座標はを介して示されるのではなく、ポリゴン内のlineEndを介して暗示されます。したがって、指定されたポリゴン入力

json
{
  "type": "Polygon",
  "coordinates": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]
}

は、ストリームで次のメソッド呼び出しのシーケンスを生成します。

js
stream.polygonStart();
stream.lineStart();
stream.point(0, 0);
stream.point(0, 1);
stream.point(1, 1);
stream.point(1, 0);
stream.lineEnd();
stream.polygonEnd();

stream.polygonStart()

ポリゴンの開始を示します。ポリゴンの最初の行は外側のリングを示し、後続の行は内側の穴を示します。

stream.polygonEnd()

ポリゴンの終了を示します。

stream.sphere()

球(地球儀、⟨0,0,0⟩を中心とする単位球)を示します。