Re: [OSGeoJapan-discuss] Douglas-Peukerなどを用いた簡素化についてのアルゴリズムを教えてください。
Yoichi Kayama
yoichi.kayama @ gmail.com
2010年 6月 27日 (日) 01:27:27 EDT
かやまです
ラガワン先生紹介のページみてみると
>Performed by the GEOS module.
とあります
QGISのftoolプラグインにも同様の機能があるのでソース追ってみました
doGeometry.py というpythonのモジュールですが
def simplify_geometry( self ): こういう関数がありまして
while vprovider.nextFeature( inFeat ):
nElement += 1
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), nElement )
inGeom = inFeat.geometry()
atMap = inFeat.attributeMap()
outGeom = QgsGeometry(inGeom.simplify(tolerance))
if outGeom is None:
return "math_error"
outFeat.setAttributeMap( atMap )
outFeat.setGeometry( outGeom )
writer.addFeature( outFeat )
こんなかんじです
実際の処理はここなんですが
outGeom = QgsGeometry(inGeom.simplify(tolerance))
多分ここも GEOS のライブラリを参照しているので GEOSのライブラリを
使うといいのかもしれません
http://trac.osgeo.org/geos/
2010年6月27日13:58 Venkatesh Raghavan <raghavan @ media.osaka-cu.ac.jp>:
> On 2010/06/27 13:48, wakasa masao wrote:
>
>> ではPostGISのST_Simplifyは何をやっているんだろう・・。
>
> ST_Simplify also use the same Douglas-Peuker algorithm
> for line generalization
> Details at:
> http://postgis.refractions.net/docs/ST_Simplify.html
>
> Best
>
> Venka
>
OSGeoJapan-discuss メーリングリストの案内