2014-11-03 60 views
-1

下午好。KMZ - 帶角度和方向的線

對不起,我的英語不好。

我想在地圖上繪製固定的線條,它可以在不設置終點座標的情況下,以座標,方向和尺寸的角度設置起點。

示例:以給定的地理座標-12.3456789,-49.3456789開始的線具有順時針123°的角度並具有XXkm尺寸。

可以在KMZ Google Earth中添加這樣的行嗎?

請發佈一些示例代碼或建議。

回答

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