[mapguide-commits] r6000 - sandbox/adsk/2.3r/Server/src/Services/Rendering

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue Jul 26 05:25:12 EDT 2011


Author: hubu
Date: 2011-07-26 02:25:12 -0700 (Tue, 26 Jul 2011)
New Revision: 6000

Modified:
   sandbox/adsk/2.3r/Server/src/Services/Rendering/ServerRenderingService.cpp
Log:
Fix ticket #1758 
https://trac.osgeo.org/mapguide/ticket/1758

Modified: sandbox/adsk/2.3r/Server/src/Services/Rendering/ServerRenderingService.cpp
===================================================================
--- sandbox/adsk/2.3r/Server/src/Services/Rendering/ServerRenderingService.cpp	2011-07-26 06:02:15 UTC (rev 5999)
+++ sandbox/adsk/2.3r/Server/src/Services/Rendering/ServerRenderingService.cpp	2011-07-26 09:25:12 UTC (rev 6000)
@@ -1492,6 +1492,7 @@
             Ptr<MgCoordinateSystem> mapCs = srs.empty()? NULL : m_pCSFactory->Create(srs);
             TransformCache* item = TransformCache::GetLayerToMapTransform(transformCache, vl->GetFeatureName(), featResId, mapCs, m_pCSFactory, m_svcFeature);
             Ptr<MgCoordinateSystemTransform> trans = item? item->GetMgTransform() : NULL;
+            MgCSTrans* xformer = item? item->GetTransform() : NULL;
 
             Ptr<MgFeatureQueryOptions> options = new MgFeatureQueryOptions();
             Ptr<MgGeometricEntity> queryGeom;
@@ -1643,16 +1644,23 @@
                             extentCoords->Add(c1);
                             Ptr<MgLinearRing> extentRing = new MgLinearRing(extentCoords);
                             Ptr<MgPolygon> extentPolygon = new MgPolygon(extentRing, NULL);
-                            Ptr<MgGeometry> intersectPolygon = polygon->Intersection(extentPolygon);
+                            
+                            Ptr<MgGeometricEntity> QueryExtentPolygon;
+                            if (trans)
+                            {
+                                //get selection geometry in layer space
+                                QueryExtentPolygon = extentPolygon->Transform(trans);
+                            }
+                            Ptr<MgGeometry> intersectPolygon = polygon->Intersection((MgPolygon *)QueryExtentPolygon.p);
 
                             if (intersectPolygon != NULL)
                             {
-                                options->SetSpatialFilter(layer->GetFeatureGeometryName(), intersectPolygon, /*MgFeatureSpatialOperations*/selectionVariant);
+                                options->SetSpatialFilter(layer->GetFeatureGeometryName(), (MgGeometry*)intersectPolygon.p, /*MgFeatureSpatialOperations*/selectionVariant);
 
                                 rdr = m_svcFeature->SelectFeatures(featResId, vl->GetFeatureName(), options);
                                 rsrdr.reset(new RSMgFeatureReader(rdr, m_svcFeature, featResId, options, vl->GetGeometry()));
                                 selRenderer->PointTest(true);
-                                ds.StylizeVectorLayer(vl, selRenderer, rsrdr.get(), NULL, scale, StylizeThatMany, selRenderer);
+                                ds.StylizeVectorLayer(vl, selRenderer, rsrdr.get(), xformer, scale, StylizeThatMany, selRenderer);
 
                                 // Clear the readers
                                 rdr = NULL;



More information about the mapguide-commits mailing list