Openlayers简化了线串功能

时间:2013-08-06 07:48:47

标签: openlayers simplify

我的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);
                }
            }
        }                           
    }
} 

1 个答案:

答案 0 :(得分:1)

simplify函数返回组件的简化版本,不会修改组件本身。在循环中,您可以根据需要设置组件:

feature.geometry.components[i] = feature.geometry.components[i].simplify(0.1);