0

我在我的 OpenLayers openstreetmaps 上遇到问题,我正在从 kml 文件加载 LineString 功能。由于 LineString 的复杂性和线串的数量,除了性能之外,一切都很好。我想使用 simplefy() 函数来简化线串几何/特征。这是我为即时简化而编写的一些代码。问题出在下面的代码行中:

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

这似乎根本没有修改原始几何特征组件。我究竟做错了什么?我认为我们可能需要使用 removeComponents ,然后使用 addComponents() 添加简化的几何图形,但如何做到这一点?

preFeatureInsert:功能(功能)

{
    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);
                }
            }
        }                           
    }
} 
4

1 回答 1

1

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

feature.geometry.components[i] = feature.geometry.components[i].simplify(0.1);
于 2014-01-02T15:28:08.030 回答