This is an automated email from the git hooks/post-receive script. sebastic-guest pushed a commit to branch upstream-master in repository pktools.
commit 90587086463689508cebed76c80cec3cee65bb63 Author: Pieter Kempeneers <kempe...@gmail.com> Date: Sat Nov 29 23:31:42 2014 +0100 debug pkextract: first SetGeometry, then SetFrom --- ChangeLog | 3 ++- src/apps/pkextract.cc | 22 +++++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index d73fa64..e79f273 100755 --- a/ChangeLog +++ b/ChangeLog @@ -328,7 +328,8 @@ version 2.6.1 - pkfilter Declare nodata option as double (see ticket #43500) Support nodata values for filtering in spectral/temporal domain (see ticket #43713) - + - pkextract + debug: Order of SetGeometry must be before SetFrom caused bad vector features (First SetGeometry, then SetFrom) Todo: - todo for API ImgReaderGdal (ImgWriterGdal) open in update mode (check gdal_edit.py: http://searchcode.com/codesearch/view/18938404) diff --git a/src/apps/pkextract.cc b/src/apps/pkextract.cc index 8ec5bd6..d5686c4 100644 --- a/src/apps/pkextract.cc +++ b/src/apps/pkextract.cc @@ -1025,9 +1025,9 @@ int main(int argc, char *argv[]) writePointFeature = OGRFeature::CreateFeature(writeLayer->GetLayerDefn()); if(verbose_opt[0]>1) std::cout << "copying fields from polygons " << std::endl; + writePointFeature->SetGeometry(&thePoint); if(writePointFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writePointFeature->SetGeometry(&thePoint); OGRGeometry *updateGeometry; updateGeometry = writePointFeature->GetGeometryRef(); OGRPoint *poPoint = (OGRPoint *) updateGeometry; @@ -1112,9 +1112,9 @@ int main(int argc, char *argv[]) // writePolygon.addRing(&writeRing);//already done // writePolygon.closeRings();//already done //write geometry of writePolygon + writePolygonFeature->SetGeometry(&writePolygon); if(writePolygonFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writePolygonFeature->SetGeometry(&writePolygon); if(verbose_opt[0]>1) std::cout << "copying new fields write polygon " << std::endl; if(verbose_opt[0]>1) @@ -1125,9 +1125,9 @@ int main(int argc, char *argv[]) //create feature if(verbose_opt[0]>1) std::cout << "copying fields from polygons " << std::endl; + writeCentroidFeature->SetGeometry(&writeCentroidPoint); if(writeCentroidFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writeCentroidFeature->SetGeometry(&writeCentroidPoint); OGRGeometry *updateGeometry; updateGeometry = writeCentroidFeature->GetGeometryRef(); assert(wkbFlatten(updateGeometry->getGeometryType()) == wkbPoint ); @@ -1475,6 +1475,8 @@ int main(int argc, char *argv[]) validFeature=true; writeRing.addPoint(&thePoint);//todo: check if I need to add all interior points to ring or do I need to check if point is on ring first? + // if(writeRing.isPointOnRingBoundary(&thePoint)) + // writeRing.addPoint(&thePoint); if(verbose_opt[0]>1) std::cout << "point is on surface:" << thePoint.getX() << "," << thePoint.getY() << std::endl; ++nPointPolygon; @@ -1493,9 +1495,9 @@ int main(int argc, char *argv[]) writePointFeature = OGRFeature::CreateFeature(writeLayer->GetLayerDefn()); if(verbose_opt[0]>1) std::cout << "copying fields from polygons " << std::endl; + writePointFeature->SetGeometry(&thePoint); if(writePointFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writePointFeature->SetGeometry(&thePoint); OGRGeometry *updateGeometry; updateGeometry = writePointFeature->GetGeometryRef(); OGRPoint *poPoint = (OGRPoint *) updateGeometry; @@ -1579,9 +1581,9 @@ int main(int argc, char *argv[]) writePolygon.addRing(&writeRing); writePolygon.closeRings(); //write geometry of writePolygon + writePolygonFeature->SetGeometry(&writePolygon); if(writePolygonFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writePolygonFeature->SetGeometry(&writePolygon); if(verbose_opt[0]>1) std::cout << "copying new fields write polygon " << std::endl; if(verbose_opt[0]>1) @@ -1592,9 +1594,9 @@ int main(int argc, char *argv[]) //create feature if(verbose_opt[0]>1) std::cout << "copying fields from polygons " << std::endl; + writeCentroidFeature->SetGeometry(&writeCentroidPoint); if(writeCentroidFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writeCentroidFeature->SetGeometry(&writeCentroidPoint); OGRGeometry *updateGeometry; updateGeometry = writeCentroidFeature->GetGeometryRef(); assert(wkbFlatten(updateGeometry->getGeometryType()) == wkbPoint ); @@ -1931,6 +1933,8 @@ int main(int argc, char *argv[]) validFeature=true; writeRing.addPoint(&thePoint); + // if(writeRing.isPointOnRingBoundary(&thePoint)) + // writeRing.addPoint(&thePoint); if(verbose_opt[0]>1) std::cout << "point is on surface:" << thePoint.getX() << "," << thePoint.getY() << std::endl; ++nPointPolygon; @@ -1949,9 +1953,9 @@ int main(int argc, char *argv[]) writePointFeature = OGRFeature::CreateFeature(writeLayer->GetLayerDefn()); if(verbose_opt[0]>1) std::cout << "copying fields from polygons " << std::endl; + writePointFeature->SetGeometry(&thePoint); if(writePointFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writePointFeature->SetGeometry(&thePoint); OGRGeometry *updateGeometry; updateGeometry = writePointFeature->GetGeometryRef(); OGRPoint *poPoint = (OGRPoint *) updateGeometry; @@ -2048,9 +2052,9 @@ int main(int argc, char *argv[]) writePolygon.addRing(&writeRing); writePolygon.closeRings(); //write geometry of writePolygon + writePolygonFeature->SetGeometry(&writePolygon); if(writePolygonFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writePolygonFeature->SetGeometry(&writePolygon); if(verbose_opt[0]>1) std::cout << "copying new fields write polygon " << std::endl; if(verbose_opt[0]>1) @@ -2061,9 +2065,9 @@ int main(int argc, char *argv[]) //create feature if(verbose_opt[0]>1) std::cout << "copying fields from polygons " << std::endl; + writeCentroidFeature->SetGeometry(&writeCentroidPoint); if(writeCentroidFeature->SetFrom(readFeature)!= OGRERR_NONE) cerr << "writing feature failed" << std::endl; - writeCentroidFeature->SetGeometry(&writeCentroidPoint); OGRGeometry *updateGeometry; updateGeometry = writeCentroidFeature->GetGeometryRef(); assert(wkbFlatten(updateGeometry->getGeometryType()) == wkbPoint ); -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel