[mapguide-commits] r1313 - trunk/MgDev/Server/src/Services/Mapping

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Mar 21 07:21:43 EDT 2007


Author: waltweltonlair
Date: 2007-03-21 07:21:43 -0400 (Wed, 21 Mar 2007)
New Revision: 1313

Modified:
   trunk/MgDev/Server/src/Services/Mapping/StylizationUtil.cpp
Log:
Fix crash in StylizationUtil for line laye

Modified: trunk/MgDev/Server/src/Services/Mapping/StylizationUtil.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Mapping/StylizationUtil.cpp	2007-03-21 03:55:05 UTC (rev 1312)
+++ trunk/MgDev/Server/src/Services/Mapping/StylizationUtil.cpp	2007-03-21 11:21:43 UTC (rev 1313)
@@ -133,12 +133,12 @@
 
 
 RSMgFeatureReader* MgStylizationUtil::ExecuteFeatureQuery(MgFeatureService* svcFeature,
-                                                        RS_Bounds& extent,
-                                                        MdfModel::VectorLayerDefinition* vl,
-                                                        const wchar_t* overrideFilter,
-                                                        MgCoordinateSystem* mapCs,
-                                                        MgCoordinateSystem* layerCs,
-                                                        TransformCache* cache)
+                                                          RS_Bounds& extent,
+                                                          MdfModel::VectorLayerDefinition* vl,
+                                                          const wchar_t* overrideFilter,
+                                                          MgCoordinateSystem* mapCs,
+                                                          MgCoordinateSystem* layerCs,
+                                                          TransformCache* cache)
 {
 #ifdef _DEBUG
     long dwStart = GetTickCount();
@@ -672,6 +672,8 @@
 
                     //get a transform from layer coord sys to map coord sys
                     TransformCache* item = GetLayerToMapTransform(transformCache, vl->GetFeatureName(), featResId, dstCs, csFactory, svcFeature);
+                    MgCoordinateSystem* layerCs = item? item->GetCoordSys() : NULL;
+                    MgCSTrans* xformer = item? item->GetTransform() : NULL;
 
                     //extract hyperlink and tooltip info
                     if (!vl->GetToolTip().empty()) legendInfo.hastooltips() = true;
@@ -747,10 +749,10 @@
                         //we are not drawing the actual geometry
                         if (maxStrokes == 0)
                         {
-                            RSMgFeatureReader* rdr = ExecuteFeatureQuery(svcFeature, extent, vl, overrideFilter.c_str(), dstCs, item ? item->GetCoordSys() : NULL, item);
+                            RSMgFeatureReader* rdr = ExecuteFeatureQuery(svcFeature, extent, vl, overrideFilter.c_str(), dstCs, layerCs, item);
                             if (rdr)
                             {
-                                ds->StylizeVectorLayer(vl, dr, rdr, item->GetTransform(), NULL, NULL);
+                                ds->StylizeVectorLayer(vl, dr, rdr, xformer, NULL, NULL);
                             }
                             delete rdr;
                         }
@@ -781,10 +783,10 @@
                                     syms->Adopt(syms2->GetAt(min(i, syms2->GetCount()-1)));
                                 }
 
-                                RSMgFeatureReader* rdr = ExecuteFeatureQuery(svcFeature, extent, vl, overrideFilter.c_str(), dstCs, item ? item->GetCoordSys() : NULL, item);
+                                RSMgFeatureReader* rdr = ExecuteFeatureQuery(svcFeature, extent, vl, overrideFilter.c_str(), dstCs, layerCs, item);
                                 if (rdr)
                                 {
-                                    ds->StylizeVectorLayer(vl, dr, rdr, item->GetTransform(), NULL, NULL);
+                                    ds->StylizeVectorLayer(vl, dr, rdr, xformer, NULL, NULL);
                                 }
                                 delete rdr;
 
@@ -825,12 +827,12 @@
                     }
                     else
                     {
-                        RSMgFeatureReader* rdr = ExecuteFeatureQuery(svcFeature, extent, vl, overrideFilter.c_str(), dstCs, item ? item->GetCoordSys() : NULL, item);
+                        RSMgFeatureReader* rdr = ExecuteFeatureQuery(svcFeature, extent, vl, overrideFilter.c_str(), dstCs, layerCs, item);
                         if (rdr)
                         {
                             //stylize into output format
                             dr->StartLayer(&legendInfo, &fcinfo);
-                            ds->StylizeVectorLayer(vl, dr, rdr, item ? item->GetTransform() : NULL, NULL, NULL);
+                            ds->StylizeVectorLayer(vl, dr, rdr, xformer, NULL, NULL);
                             dr->EndLayer();
                         }
                         delete rdr;
@@ -874,6 +876,8 @@
 
                     //get a transform from layer coord sys to map coord sys
                     TransformCache* item = GetLayerToMapTransform(transformCache, gl->GetFeatureName(), featResId, dstCs, csFactory, svcFeature);
+                    MgCoordinateSystem* layerCs = item? item->GetCoordSys() : NULL;
+                    MgCSTrans* xformer = item? item->GetTransform() : NULL;
 
                     //grid layer does not yet have hyperlink or tooltip
                     //extract hyperlink and tooltip info
@@ -917,12 +921,12 @@
                     }
 
                     //perform the raster query
-                    RSMgFeatureReader* rdr = ExecuteRasterQuery(svcFeature, extent, gl, overrideFilter.c_str(), dstCs, item ? item->GetCoordSys() : NULL, width, height);
+                    RSMgFeatureReader* rdr = ExecuteRasterQuery(svcFeature, extent, gl, overrideFilter.c_str(), dstCs, layerCs, width, height);
                     if (rdr)
                     {
                         //stylize into a dwf
                         dr->StartLayer(&legendInfo, &fcinfo);
-                        ds->StylizeGridLayer(gl, dr, rdr, item->GetTransform(), NULL, NULL);
+                        ds->StylizeGridLayer(gl, dr, rdr, xformer, NULL, NULL);
                         dr->EndLayer();
                     }
                     delete rdr;



More information about the mapguide-commits mailing list