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 メーリングリストの案内