[mapguide-commits] r7582 - in trunk/MgDev/Server/src/Services: Feature Mapping Rendering
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Sat Jun 8 01:43:05 PDT 2013
Author: christinebao
Date: 2013-06-08 01:43:05 -0700 (Sat, 08 Jun 2013)
New Revision: 7582
Modified:
trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp
trunk/MgDev/Server/src/Services/Feature/TransformCache.cpp
trunk/MgDev/Server/src/Services/Feature/TransformCache.h
trunk/MgDev/Server/src/Services/Mapping/MappingUtil.cpp
trunk/MgDev/Server/src/Services/Rendering/ServerRenderingService.cpp
Log:
#2258: Serve WFS in alternate CS: SRSNAME not respected in getfeature, alternate SRS not available
Fix bug introduced by previous submission. Render map need to convert from map cs to layer cs, so add a parameter "reverse" to indicate csFactory should create from srcCs to dstCs or vice verse.
Modified: trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp 2013-06-07 16:56:42 UTC (rev 7581)
+++ trunk/MgDev/Server/src/Services/Feature/ServerFeatureService.cpp 2013-06-08 08:43:05 UTC (rev 7582)
@@ -1867,7 +1867,7 @@
}
//get a transform from feature space to mapping space
- TransformCache* item = TransformCache::GetLayerToMapTransform(transformCache, lfeatureName, fs, mapCs, &fact, this);
+ TransformCache* item = TransformCache::GetLayerToMapTransform(transformCache, lfeatureName, fs, mapCs, &fact, this, false);
Ptr<MgCoordinateSystemTransform> trans = item? item->GetMgTransform() : NULL;
FdoPtr<MgGMLCsTransform> transform = new MgGMLCsTransform(trans);
Modified: trunk/MgDev/Server/src/Services/Feature/TransformCache.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/TransformCache.cpp 2013-06-07 16:56:42 UTC (rev 7581)
+++ trunk/MgDev/Server/src/Services/Feature/TransformCache.cpp 2013-06-08 08:43:05 UTC (rev 7582)
@@ -74,7 +74,8 @@
MgResourceIdentifier* resId,
MgCoordinateSystem* dstCs,
MgCoordinateSystemFactory* csFactory,
- MgFeatureService* svcFeature)
+ MgFeatureService* svcFeature,
+ bool reverse)
{
// prevent separate threads from simultaneously creating coordinate systems
ACE_MT(ACE_GUARD_RETURN(ACE_Recursive_Thread_Mutex, ace_mon, sm_mutex, NULL));
@@ -158,7 +159,7 @@
{
TransformCacheMap::const_iterator iter = cache.find(srcwkt);
if (cache.end() != iter) item = (*iter).second;
- if (NULL == item)
+ if (NULL == item || !reverse)
{
Ptr<MgCoordinateSystem> srcCs = csFactory->Create(srcwkt);
if (srcCs.p)
@@ -167,7 +168,15 @@
cache[srcwkt] = item;
// Set the coordinate system transform
- Ptr<MgCoordinateSystemTransform> trans = csFactory->GetTransform(srcCs, dstCs);
+ Ptr<MgCoordinateSystemTransform> trans;
+ if (reverse)
+ {
+ trans = csFactory->GetTransform(dstCs, srcCs);
+ }
+ else
+ {
+ trans = csFactory->GetTransform(srcCs, dstCs);
+ }
trans->IgnoreDatumShiftWarning(true);
trans->IgnoreOutsideDomainWarning(true);
Modified: trunk/MgDev/Server/src/Services/Feature/TransformCache.h
===================================================================
--- trunk/MgDev/Server/src/Services/Feature/TransformCache.h 2013-06-07 16:56:42 UTC (rev 7581)
+++ trunk/MgDev/Server/src/Services/Feature/TransformCache.h 2013-06-08 08:43:05 UTC (rev 7582)
@@ -44,7 +44,8 @@
MgResourceIdentifier* resId,
MgCoordinateSystem* dstCs,
MgCoordinateSystemFactory* csFactory,
- MgFeatureService* svcFeature);
+ MgFeatureService* svcFeature,
+ bool reverse);
static void Clear(TransformCacheMap& cacheMap);
Modified: trunk/MgDev/Server/src/Services/Mapping/MappingUtil.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Mapping/MappingUtil.cpp 2013-06-07 16:56:42 UTC (rev 7581)
+++ trunk/MgDev/Server/src/Services/Mapping/MappingUtil.cpp 2013-06-08 08:43:05 UTC (rev 7582)
@@ -531,7 +531,7 @@
#endif
//get a transform from layer coord sys to map coord sys
- TransformCache* item = TransformCache::GetLayerToMapTransform(transformCache, vl->GetFeatureName(), featResId, dstCs, csFactory, svcFeature);
+ TransformCache* item = TransformCache::GetLayerToMapTransform(transformCache, vl->GetFeatureName(), featResId, dstCs, csFactory, svcFeature, true);
TCForProfile = item;
Ptr<MgCoordinateSystem> layerCs = item? item->GetCoordSys() : NULL;
MgCSTrans* xformer = item? item->GetTransform() : NULL;
@@ -641,7 +641,7 @@
TransformCache* item = NULL;
{
ACE_MT(ACE_GUARD(ACE_Recursive_Thread_Mutex, ace_mon, sg_fdoRfpMutex));
- item = TransformCache::GetLayerToMapTransform(transformCache, gl->GetFeatureName(), featResId, dstCs, csFactory, svcFeature);
+ item = TransformCache::GetLayerToMapTransform(transformCache, gl->GetFeatureName(), featResId, dstCs, csFactory, svcFeature, true);
}
TCForProfile = item;
Modified: trunk/MgDev/Server/src/Services/Rendering/ServerRenderingService.cpp
===================================================================
--- trunk/MgDev/Server/src/Services/Rendering/ServerRenderingService.cpp 2013-06-07 16:56:42 UTC (rev 7581)
+++ trunk/MgDev/Server/src/Services/Rendering/ServerRenderingService.cpp 2013-06-08 08:43:05 UTC (rev 7582)
@@ -1325,7 +1325,7 @@
//get a transform from layer coord sys to map coord sys
Ptr<MgCoordinateSystem> mapCs = srs.empty()? NULL : m_pCSFactory->Create(srs);
- TransformCache* item = TransformCache::GetLayerToMapTransform(transformCache, vl->GetFeatureName(), featResId, mapCs, m_pCSFactory, m_svcFeature);
+ TransformCache* item = TransformCache::GetLayerToMapTransform(transformCache, vl->GetFeatureName(), featResId, mapCs, m_pCSFactory, m_svcFeature, true);
Ptr<MgCoordinateSystemTransform> trans = item? item->GetMgTransform() : NULL;
MgCSTrans* xformer = item? item->GetTransform() : NULL;
More information about the mapguide-commits
mailing list