下午好。KMZ - 帶角度和方向的線
對不起,我的英語不好。
我想在地圖上繪製固定的線條,它可以在不設置終點座標的情況下,以座標,方向和尺寸的角度設置起點。
示例:以給定的地理座標-12.3456789,-49.3456789開始的線具有順時針123°的角度並具有XXkm尺寸。
可以在KMZ Google Earth中添加這樣的行嗎?
請發佈一些示例代碼或建議。
下午好。KMZ - 帶角度和方向的線
對不起,我的英語不好。
我想在地圖上繪製固定的線條,它可以在不設置終點座標的情況下,以座標,方向和尺寸的角度設置起點。
示例:以給定的地理座標-12.3456789,-49.3456789開始的線具有順時針123°的角度並具有XXkm尺寸。
可以在KMZ Google Earth中添加這樣的行嗎?
請發佈一些示例代碼或建議。
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();