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);
}
}