2013-08-06 65 views
0

我在我的OpenLayers openstreetmaps上有一個問題,我從kml文件中加載LineString特徵。除了性能之外,一切正常,因爲LineString的複雜性和線串的數量。我想使用simplyfy()函數來簡化線串幾何/特徵。這裏是我寫的一些代碼,用於簡化實時操作。問題是在下面的代碼行:Openlayers在線簡化線串特徵

  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); 
       } 
      } 
     }       
    } 
} 
+0

你有沒有看這個例子:http://openlayers.org/dev/examples/simplify-linestring.html –

回答

1

的簡化函數返回的組件的一個簡化的版本和不修改組件本身。在你的循環,你可以根據需要設置的組件:

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