[mapguide-commits] r8730 - in branches/2.6/MgDev: . Web/src/HttpHandler
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Fri Jul 31 07:04:32 PDT 2015
Author: jng
Date: 2015-07-31 07:04:32 -0700 (Fri, 31 Jul 2015)
New Revision: 8730
Modified:
branches/2.6/MgDev/
branches/2.6/MgDev/Web/src/HttpHandler/HttpWmsGetFeatureInfo.cpp
Log:
Merged revision(s) 8728 from trunk/MgDev:
Fix ticket: GETFEATUREINFO for line or points on MapGuide 2.2
http://trac.osgeo.org/mapguide/ticket/1858
When GetFeatureInfo for point or line geometry, simply using click point to query cannot get any matching. Expand selection geometry a little to be a linearRing so that can query point and line.
........
Property changes on: branches/2.6/MgDev
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/2.4/MgDev:6749-6756,6777-6783,6785-6787,6789,6791-6794,6796-6801,6954-6962,6986-7006
/sandbox/adsk/3.0m:8563,8584,8607,8625
/sandbox/jng/createruntimemap:7486-7555
/sandbox/rfc94:5099-5163
/trunk/MgDev:8209-8210,8230,8313,8333,8359,8388,8392,8423,8433,8439,8443-8444,8518-8519,8567-8568,8571,8588-8589,8595,8616-8618,8626
+ /branches/2.4/MgDev:6749-6756,6777-6783,6785-6787,6789,6791-6794,6796-6801,6954-6962,6986-7006
/sandbox/adsk/2.6l:8727
/sandbox/adsk/3.0m:8563,8584,8607,8625
/sandbox/jng/createruntimemap:7486-7555
/sandbox/rfc94:5099-5163
/trunk/MgDev:8209-8210,8230,8313,8333,8359,8388,8392,8423,8433,8439,8443-8444,8518-8519,8567-8568,8571,8588-8589,8595,8616-8618,8626,8682,8728
Modified: branches/2.6/MgDev/Web/src/HttpHandler/HttpWmsGetFeatureInfo.cpp
===================================================================
--- branches/2.6/MgDev/Web/src/HttpHandler/HttpWmsGetFeatureInfo.cpp 2015-07-31 14:02:53 UTC (rev 8729)
+++ branches/2.6/MgDev/Web/src/HttpHandler/HttpWmsGetFeatureInfo.cpp 2015-07-31 14:04:32 UTC (rev 8730)
@@ -154,14 +154,29 @@
Ptr<MgCoordinate> mcsLowerLeft = mcsExtent->GetLowerLeftCoordinate();
Ptr<MgCoordinate> mcsUpperRight = mcsExtent->GetUpperRightCoordinate();
+ //When GetFeatureInfo for point or line geometry, simply using click point to query cannot get any matching.
+ //Expand selection geometry a little to be a linearRing so that can query point and line.
+ double margin = 2;
// Convert the pixel coords to MCS coords
- double mcsX = mcsLowerLeft->GetX() + (double)m_iCoord * mcsExtent->GetWidth() / map->GetDisplayWidth();
- double mcsY = mcsUpperRight->GetY() - (double)m_jCoord * mcsExtent->GetHeight() / map->GetDisplayHeight();
+ double mcsMinX = mcsLowerLeft->GetX() + ((double)m_iCoord - margin) * mcsExtent->GetWidth() / map->GetDisplayWidth();
+ double mcsMaxY = mcsUpperRight->GetY() -((double)m_jCoord - margin) * mcsExtent->GetHeight() / map->GetDisplayHeight();
+ double mcsMaxX = mcsLowerLeft->GetX() + ((double)m_iCoord + margin)* mcsExtent->GetWidth() / map->GetDisplayWidth();
+ double mcsMinY = mcsUpperRight->GetY() -((double)m_jCoord + margin) * mcsExtent->GetHeight() / map->GetDisplayHeight();
+
// Create a new MgPoint representing these coordinates
- Ptr<MgCoordinateXY> selectionCoord = new MgCoordinateXY(mcsX, mcsY);
- selectionGeometry = new MgPoint(selectionCoord);
+ Ptr<MgGeometryFactory> geometryFact = new MgGeometryFactory();
+ Ptr<MgCoordinateCollection> linearRingCoords = new MgCoordinateCollection();
+ linearRingCoords->Add(new MgCoordinateXY(mcsMinX, mcsMinY));
+ linearRingCoords->Add(new MgCoordinateXY(mcsMinX, mcsMaxY));
+ linearRingCoords->Add(new MgCoordinateXY(mcsMaxX, mcsMaxY));
+ linearRingCoords->Add(new MgCoordinateXY(mcsMaxX, mcsMinY));
+ linearRingCoords->Add(new MgCoordinateXY(mcsMinX, mcsMinY));
+
+ Ptr<MgLinearRing> linearRing = geometryFact->CreateLinearRing(linearRingCoords);
+ selectionGeometry = geometryFact->CreatePolygon(linearRing, NULL);
+
return selectionGeometry;
}
More information about the mapguide-commits
mailing list