KMZ - 有角度和方向的线

时间:2014-11-03 19:57:21

标签: kml kmz

下午好。

抱歉我的英语不好。

我想在地图中绘制固定线条,用于设置起点,坐标,方向角度和线条尺寸,而不设置终点坐标。

示例:在给定地理坐标-12.3456789,-49.3456789中开始的直线顺时针角度为123°,并具有XXkm尺寸。

可以在KMZ Google Earth中添加这样的行吗?

请发布一些示例代码或建议。

1 个答案:

答案 0 :(得分:0)

KML(或KMZ)只能将一条线表示为点集合,并且至少包含起点和终点。 https://developers.google.com/kml/documentation/kmlreference#linestring

您可以从起点,方向角(或方向)计算终点,然后距离表示使用KML在Google地球中显示它。

例如在OpenSextant geodesy java library中你可以创建一个Geodetic2DArc并用3行java代码计算端点:

Geodetic2DPoint start = new Geodetic2DPoint(new Longitude(-49.3456789, Angle.DEGREES),
            new Latitude(-12.3456789, Angle.DEGREES));
Geodetic2DArc arc = new Geodetic2DArc(start, 5000.0, new Angle(123, Angle.DEGREES));
Geodetic2DPoint endPt = arc.getPoint2();

距离以米为单位,因此如果您需要较长的线段,则需要更大的距离。 然后使用关联的Giscore library,您可以使用更多的java代码行直接将行导出到KML中:

KmlOutputStream kos = new KmlOutputStream(new FileOutputStream("out.kml"));
Feature f = new Feature();
f.setName("line");
List<Point> pts = new ArrayList<Point>(2);
pts.add(new Point(start));
pts.add(new Point(endPt));
f.setGeometry(new Line(pts));
kos.write(f);
kos.close();