2012-11-19 146 views
1

我正在將舊座標系的某些地圖/區域轉換爲更簡單(較不詳細)的用於在Web上顯示的模型(使用jVectorMap)。我成功地使用了Douglas Peucker算法(來自此處的代碼:http://www.codeproject.com/Articles/18936/A-C-Implementation-of-Douglas-Peucker-Line-Approxi)。簡化相鄰多邊形

它工作的很好,但是這個實現沒有考慮到這些區域彼此對齊(共享邊界),當使用更高的容差時會導致相當不好的結果,如下所示。

enter image description here

是否有可能實現在區域仍將對準的解決方案?

回答

1

如果你有一些Python的使用經驗,你可以試試simplification script,我已經寫過它作爲jVectorMap GIS轉換器的一部分。可惜這還沒有結束:您需要手動安裝的依賴關係,定義腳本(路徑,驅動程序)的內部參數等

只要設定在腳本中的下列參數:

tolerance = 1000 
infile = 'Kn99_sve.MIF' 
outfile = 'map.mif' 

和更改驅動程序名稱形式ESRI ShapefileMapInfo File

要運行腳本,您需要Python 2.7並安裝Python模塊:gdal,shapely,anyjson。

+0

謝謝,但是我的源文件未SHP(他們是MID/MIF)。儘管如此,我可能會仔細考慮一下。我也發現這個JavaScript簡化器:http://bost.ocks.org/mike/simplify/。將在此線程中發佈,如果進展。 –

+0

它也應該與MID一起工作,因爲GDAL/OGR庫用於加載數據,它支持各種GIS格式。順便說一句,我不認爲這個腳本支持邊界安全的簡化。 – bjornd

+0

好的。將研究它。我確實認爲,發佈的鏈接應該支持邊界安全簡化,因爲它指出了一些關於雙眼三角形的東西(再一次,還沒有深入其中)。 –