Javascript 多段线不显示,当切分为较小的线时,它会显示
我试图显示一条线,但当我像这样启动多段线时,没有显示:Javascript 多段线不显示,当切分为较小的线时,它会显示,javascript,cesium,Javascript,Cesium,我试图显示一条线,但当我像这样启动多段线时,没有显示: var geopositions = []; for (var i = 0; i < c.geo.length; i++) { var g = c.geo[i]; geopositions.push(parseFloat(g.lon)); geopositions.push(parseFloat(g.lat)); } var line = { positions: Cesium.Cartesian3
var geopositions = [];
for (var i = 0; i < c.geo.length; i++) {
var g = c.geo[i];
geopositions.push(parseFloat(g.lon));
geopositions.push(parseFloat(g.lat));
}
var line = {
positions: Cesium.Cartesian3.fromDegreesArray(geopositions),
width: 1,
id: "C" + c.id,
material: Cesium.Material.fromType('Color', {
color: Cesium.Color.fromBytes(255, 0, 0, 255)
}),
show: true
}
var coll = new Cesium.PolylineCollection();
coll.add(line);
primitives.add(coll);
var geoppositions=[];
对于(变量i=0;i
所以我想我应该试着在线的所有点(c.geo中的点)之间画一条线,如下所示:
var collection=新铯.PolylineCollection();
var-prev=null;
对于(var j=0;j
出于某种原因,这确实表明了这一点。我找不到这种情况的原因,也不明白为什么会显示一列直线,而不会显示标准多段线。有人知道如何在不将直线分割成小多段线的情况下显示直线吗?我解决了这个问题
很明显,铯多段线不喜欢两个完全相同的连续坐标(lat和lon)。这个问题似乎可以通过删除额外的坐标来解决。铯应该可以处理您描述的情况。你很可能会遇到某种形式的麻烦;它已被修复。它实际上不会显示整个多段线的任何内容。但我已经解决了这个问题。“尽管任何长度小于一毫米的线段都无法绘制。”这会让人觉得只有线段会失败,但根据我的经验,整个多段线都会失败。
var collection = new Cesium.PolylineCollection();
var prev = null;
for (var j = 0; j < c.geo.length; j++) {
var geo = c.geo[j];
if (prev) {
collection.add(
{
positions: Cesium.Cartesian3.fromDegreesArray([
parseFloat(prev.lon), parseFloat(prev.lat),
parseFloat(geo.lon), parseFloat(geo.lat)]),
width: 2,
material: Cesium.Material.fromType('Color', {
color: Cesium.Color.fromBytes(0, 180, 0, 255)
})
}
);
}
prev = geo;
}
primitives.add(collection);