[mapguide-commits] r1313 - trunk/MgDev/Server/src/Services/Mapping
Walt Welton-Lair
walt.welton-lair at autodesk.com
Wed Mar 21 07:22:42 EDT 2007
Log should have been:
The server was crashing in MgStylizationUtil::StylizeLayers when
processing
line layers which were missing spatial context information. The
problem was
that the TransformCache object was NULL (which is ok), but not all
places
that using it were checking for NULL.
-----Original Message-----
From: mapguide-commits-bounces at lists.osgeo.org
[mailto:mapguide-commits-bounces at lists.osgeo.org] On Behalf Of
svn_mapguide at osgeo.org
Sent: Wednesday, March 21, 2007 12:22 PM
To: mapguide-commits at lists.osgeo.org
Subject: [mapguide-commits] r1313 -
trunk/MgDev/Server/src/Services/Mapping
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;
_______________________________________________
mapguide-commits mailing list
mapguide-commits at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapguide-commits
More information about the mapguide-commits
mailing list