2014-11-03 4 views
-1

Добрый день.KMZ - линия с углом и направлением

Извините за мой плохой английский.

Я хотел бы нарисовать фиксированные линии на карте, которые задали бы начальную точку с координатами, углом направления и размером линии без установки координат конечной точки.

Пример: Линия, начинающаяся с заданных географических координат -12.3456789, -49.3456789, имеет угол 123 ° по часовой стрелке и имеет размер XX км.

Можно добавить такие строки в KMZ Google Earth?

Просьба опубликовать его с помощью какого-либо примера кода или предложений.

ответ

0

KML (или KMZ) только может представлять линию в виде набора точек с минимальной начальной и конечной точками.

Вы можете вычислить конечную точку из начальной точки, угол направления (или заголовок), а затем отобразить ее в Google Earth с помощью KML.

Например, в 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 вы можете экспортировать строку в формате KML непосредственно еще несколько строк кода Java:

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(); 
Смежные вопросы