Я пытаюсь нарисовать стрелку для каждой точки в файле kml.Для этого я планирую получить координаты для каждой точки с помощью getById.Пока я получаю сообщение об ошибке:
Uncaught TypeError: Cannot read property 'position' of undefined (on line 14)
Вот мой код:
var src = Cesium.KmlDataSource.load('../../My_KML/plots.kml', options);
viewer.dataSources.add(src).then(function(data) {viewer.flyTo(data);});
//-------------------********--------------**********-----------------//
var point = viewer.entities.getById('geom_20102');
var entities = viewer.entities;
var cartographicPosition = Cesium.Cartographic.fromCartesian(point.position.getValue(Cesium.JulianDate.now()));
var latitude = Cesium.Math.toDegrees(cartographicPosition.latitude);
var longitude = Cesium.Math.toDegrees(cartographicPosition.longitude);
var line1 = entities.add({
polyline : {
positions : Cesium.Cartesian3.fromDegreesArrayHeights([longitude, latitude, 360, longitude + 1, latitude + 1, 400]),
width : 10,
followSurface : false,
material : new Cesium.PolylineArrowMaterialProperty(Cesium.Color.BLUE)
}
});
Я указал элемент с идентификатором 'geom_20102' в качестве строки, обернутой меткой вкмл.Также я хотел бы знать, какой идентификатор указывать, так как метка и строка имеют идентификатор.Или я путаю идентификатор kml с идентификатором сущности?
Я новичок в Cesium.Js и частично следовал этому примеру: Цезиевая мастерская
Фрагмент KML:
<Placemark id="feat_20125">
<name>874</name>
<styleUrl>#stylesel_20102</styleUrl>
<LineString id="geom_20102">
<coordinates>104.99108,10.4118,247.3 72.991075,26.25412,247.6</coordinates>
<altitudeMode>relativeToGround</altitudeMode>
</LineString>
</Placemark>