2

テキスト ファイル (*.csv) があり、そのファイル内で XYZ を正常に定義して、ポイントのシェープファイルを書き込みました。

ogr2ogr -f "ESRI Shapefile" testing.shp conduitout.vrt

*.vrt ファイルは次のようになります。

<OGRVRTDataSource>
    <OGRVRTLayer name="conduitout">
        <SrcDataSource>conduitout.csv</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <LayerSRS>EPSG:2232</LayerSRS>
        <GeometryField encoding="PointFromColumns" x="start1" y="start2" z="start3"/>
    </OGRVRTLayer>
</OGRVRTDataSource>

線のシェープファイルを書き込めるようにこれを変更するにはどうすればよいですか? 入力ファイル (*.csv) に X1、Y1、Z1、および X2、Y2、Z2 があります。*.vrt ファイルで次のように定義することでこれを行うと思います。

<OGRVRTDataSource>
    <OGRVRTLayer name="conduitout">
        <SrcDataSource>conduitout.csv</SrcDataSource>
        <GeometryType>wkbMultiLineString</GeometryType>
        <LayerSRS>EPSG:2232</LayerSRS>
        <GeometryField encoding="WKB" />
    </OGRVRTLayer>
</OGRVRTDataSource>

しかし、*.csv ファイルの列から各行の始点と終点を定義する方法がわかりません。

どうもありがとう

4

2 に答える 2

0

Wkb および Wkt の場合、ジオメトリは、有効な Wkb または Wkt 形式を含む単一の列にある必要があります。以下の例では、もう少し読みやすい WKT エンコーディングを使用しています。また、Wkt ジオメトリはコンマを使用するため、ファイルのセパレータとしてコンマを使用できないことに注意してください。

「csv」ファイル:

Name;Lines
"Line1";LINESTRING (30 10, 10 30, 40 40)
"Line2";LINESTRING (5 10, 0 30, -30 40)

そして vrt ファイル:

<OGRVRTDataSource>
       <OGRVRTLayer name="Linestest">
        <SrcDataSource SEPARATOR="SEMICOLON">D:\indata.csv</SrcDataSource> 
        <SrcLayer>indata</SrcLayer> 
        <GeometryType>wkbLineString</GeometryType> 
        <GeometryField encoding="WKT" field="Lines"/>
      </OGRVRTLayer>
</OGRVRTDataSource>

ジオメトリの Wkt および Wkb 形式の詳細については、Wikipedia を参照してください: http://en.wikipedia.org/wiki/Well-known_text

于 2013-04-19T11:29:23.293 に答える