1

GeoTools KML エンコーダーを使用して、一連のポイントを KML にエクスポートしています。

それは正常に動作しますが、私のポイントは緯度、経度、高度として表現され、それらはそのようにエクスポートされますが、Google Earth はそれらを表面に固定して表示します。

ここaltitudeModeで、属性を設定する必要があることを読みました。GeoTools エンコーダーでそれを行うにはどうすればよいですか?

これが私のコードです:

/**
 * Converts the given point array to KML.
 * @param points The array of points to be converted.
 * @param os The target output stream where the resulting KML is to be
 * written. This method does not close the stream.
 */
public static void toKml(Point[] points, OutputStream os) {
    SimpleFeatureTypeBuilder sftb = new SimpleFeatureTypeBuilder();
    sftb.setName("points");
    sftb.add("geomtery", Point.class, DefaultGeographicCRS.WGS84_3D);
    SimpleFeatureType type = sftb.buildFeatureType();

    DefaultFeatureCollection features = new DefaultFeatureCollection();

    SimpleFeatureBuilder builder = new SimpleFeatureBuilder(type);
    for (int i = 0; i < points.length; i++) {
        builder.add(points[i]);
        features.add(builder.buildFeature(Integer.toString(i)));
    }

    Encoder encoder = new Encoder(new KMLConfiguration());
    encoder.setIndenting(true);
    try {
        encoder.encode(features, KML.kml, os);
    } catch (IOException e) {
        throw new RuntimeException("While converting " +
                Arrays.toString(points) + " to KML.", e);
    }
}
4

0 に答える 0