[mapguide-commits] r6013 - trunk/MgDev/Server/src/Services/Rendering
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Wed Jul 27 23:21:09 EDT 2011
Author: hubu
Date: 2011-07-27 20:21:09 -0700 (Wed, 27 Jul 2011)
New Revision: 6013
Modified:
trunk/MgDev/Server/src/Services/Rendering/ServerRenderingService.cpp
Log:
Fix the ticket #1758
https://trac.osgeo.org/mapguide/ticket/1758
Modified: trunk/MgDev/Server/src/Services/Rendering/ServerRenderingService.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Rendering/ServerRenderingService.cpp 2011-07-28 02:13:43 UTC (rev 6012)
+++ trunk/MgDev/Server/src/Services/Rendering/ServerRenderingService.cpp 2011-07-28 03:21:09 UTC (rev 6013)
@@ -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,8 +1644,15 @@
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);
@@ -1652,7 +1660,7 @@
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