我的OpenLayers openstreetmaps有一个问题,我正在从kml文件加载LineString功能。由于LineString的复杂性和线串的数量,一切都很好,除了性能。我想使用simplyfy()函数来简化线串几何/特征。这是我写的一些代码,可以动态简化。问题出在下面的代码行中:
feature.geometry.components[i].simplify(0.1);
这似乎根本不会修改原始几何特征组件。我究竟做错了什么?我想我们可能需要使用removeComponents然后使用addComponents()添加简化的几何,但是如何做到这一点?
preFeatureInsert:function(feature)
{
if (feature != "undefined" && feature.geometry != "undefined" && feature.geometry.CLASS_NAME == "OpenLayers.Geometry.Collection");
{
if (feature.geometry.components != "undefined" && typeof(feature.geometry.components) != "undefined")
{
for (var i = 0; i < feature.geometry.components.length; i++)
{
if (feature.geometry.components[i].CLASS_NAME == "OpenLayers.Geometry.LineString")
{
feature.geometry.components[i].simplify(0.1);
}
}
}
}
}
答案 0 :(得分:1)
simplify函数返回组件的简化版本,不会修改组件本身。在循环中,您可以根据需要设置组件:
feature.geometry.components[i] = feature.geometry.components[i].simplify(0.1);