It sounds like the Session or MapName is incorrect in that case. I would try a test page (like above).
On Fri, May 29, 2026 at 9:03 AM David Bowen <[email protected]> wrote: > Thanks Gordon. I tried commenting out the suggested line and it still > fails. When I run the following, $numberLayers comes back as 0: > > $sel = new MgSelection( $this->map ); > $sel->Open($this->resourceService,$mgMapID); > $selLayers = $sel->GetLayers(); > $numberLayers = $selLayers->GetCount(); > > When I run the same script on the environment that has CodeIgniter still > installed, I get a result of 1. I'm not quite sure what's causing the issue > since the script looks similar between the two environments. > > Any suggestions? > > On Thu, May 28, 2026 at 11:47 AM Gordon Luckett < > [email protected]> wrote: > >> Perhaps this line is causing the issue? >> >> $this->originalSel = $sel->ToXml(); >> >> I've just tested the GetLayers() and they work well. >> >> (after lauching from an InvokeURL in the Flexible Web Layout) >> $configFilePath = "C:\Program Files\OSGeo\MapGuide\Web\www\webconfig.ini"; >> $mgSessionId = ($_SERVER['REQUEST_METHOD'] == "POST")? $_POST['session']: >> $_GET['session']; >> $mapName = ($_SERVER['REQUEST_METHOD'] == "POST")? $_POST['mapname']: >> $_GET['mapname']; >> MgInitializeWebTier($cofigFilePath); >> $userInfo = new MgUserInformation($mgSessionId); >> $siteConnection = new MgSiteConnection(); >> $siteConnection->Open($userInfo); >> $resourceService = $siteConnection->CreateService(0); >> $featureService = $siteConnection->CreateService(2); >> $queryOptions = new MgFeatureQueryOptions(); >> >> $map = new MgMap($siteConnection); >> $map->Open($mapName); >> $selection = new MgSelection($map); >> $selection->Open($resourceService, $mapName); >> $selectedLayers = $selection->GetLayers(); >> for ($i = 0; $i < $numberLayers; $i++) >> { >> $layer = $selectedLayers->GetItem($i); >> $layerName = $layer->GetName(); >> echo $layerName . '<br>'; >> } >> >> Works well. >> >> gordon >> >> >> On Thu, May 28, 2026 at 11:27 AM David Bowen <[email protected]> wrote: >> >>> Hello Gordon, >>> >>> Let me know if the following is what you're looking for. The script >>> calls the class Mg_initialize,, with the relevant sections below. >>> >>> init gets called when the class SelectionTools first gets initiated. the >>> function getMap gets called in the line you called out. >>> >>> function init( $MapName, $SessionId ) { >>> $webconfig_ini ="PATH/OSGeo/MapGuide/Web/www/webconfig.ini"; >>> $mgMapID = $MapName; >>> $mgSessionId = $SessionId; >>> >>> try { >>> MgInitializeWebTier( $webconfig_ini ); >>> $userInfo = new MgUserInformation( $mgSessionId ); >>> $this->siteConnection = new MgSiteConnection(); >>> $this->siteConnection->Open( $userInfo ); >>> $this->resourceService = >>> $this->siteConnection->CreateService( MgServiceType::ResourceService ); >>> $this->featureService = >>> $this->siteConnection->CreateService( MgServiceType::FeatureService ); >>> $this->map = new MgMap( $this->siteConnection ); >>> $this->map->Open( $mgMapID ); >>> } catch ( MgException $e ) { >>> echo $e->GetMessage(); >>> echo $e->GetDetails(); >>> exit(); >>> } >>> } >>> >>> function getMap() { >>> return $this->map; >>> } >>> >>> On Thu, May 28, 2026 at 9:15 AM Gordon Luckett < >>> [email protected]> wrote: >>> >>>> I would be curious about the line: >>>> >>>> $this->MapGuideObject->getMap(); >>>> >>>> Share this definition? >>>> >>>> On Mon, May 25, 2026 at 1:35 PM David Bowen via mapguide-users < >>>> [email protected]> wrote: >>>> >>>>> We're updating our application from using an MVC framework to being a >>>>> PHP only application. We're getting an unexpected error when running a >>>>> spatial query that looks for corresponding data, from a specified layer, >>>>> that falls within a set distance of the geocoded coordinates. This >>>>> function worked as expected in the MVC framework and the only code change, >>>>> for this section of code, is how the MG_initialize library is loaded. >>>>> >>>>> Going through the function step-by-step, it appears that it's failing >>>>> when it attempts to retrieve the layers from MapGuide. Instead of >>>>> returning >>>>> something, it's returning NULL. This triggers a Fusion error, where 1 of 2 >>>>> different error messages are displayed. >>>>> >>>>> The first error message is: >>>>> Failed to retrieve message for "MgFileNotFoundException". Failed to >>>>> retrieve message for "MgFileIoErrNo". - MgInitializeWebTier line 155 file >>>>> C:\Workspace\mg-4.0\MgDev\Web\src\WebSupport\InitializeWebTier.cpp - >>>>> MgInitializeWebTierInternal line 116 file >>>>> C:\Workspace\mg-4.0\MgDev\Web\src\WebSupport\InitializeWebTier.cpp - >>>>> MgResources.LoadResources line 388 file >>>>> C:\Workspace\mg-4.0\MgDev\Common\Foundation\System\Resources.cpp - >>>>> MgResources.ParseFile line 632 file >>>>> C:\Workspace\mg-4.0\MgDev\Common\Foundation\System\Resources.cpp - >>>>> ByteSourceFileImpl.LoadFile line 127 file >>>>> C:\Workspace\mg-4.0\MgDev\Common\Foundation\System\ByteSourceFileImpl.cpp >>>>> >>>>> The second error message is: >>>>> Fatal error: Uncaught TypeError: extract(): Argument #1 ($array) must >>>>> be of type array, string given in PATH\map\view\page.php:116 Stack trace: >>>>> #0 PATH\map\view\page.php(116): extract() #1 >>>>> PATH\maptools\sel_action.php(154): require_once('...') #2 >>>>> PATH\maptools\sel_action.php(56): Sel_Action->selectionReport_ql() #3 >>>>> PATH\maptools\sel_action.php(290): Sel_Action->__construct() #4 {main} >>>>> thrown in PATH\map\view\page.php on line 116 >>>>> >>>>> The script is: >>>>> function __construct( $config ) { >>>>> $mapName = $config[ 'mapname' ]; >>>>> $mgSessionID = $config[ 'mapsession' ]; >>>>> $this->mgMapID = $mapName; >>>>> $this->mgSessionId = $mgSessionID; >>>>> //Initialize a MapGuide object instance >>>>> require_once('../library/mapguide/Mg_initialize.php'); >>>>> $this->MapGuideObject = new Mg_initialize(); >>>>> $this->MapGuideObject->init( $this->mgMapID, >>>>> $this->mgSessionId ); >>>>> } >>>>> >>>>> function getSelection() { >>>>> $myMap = $this->MapGuideObject->getMap(); >>>>> $session = $this->mgSessionId; >>>>> $mapName = $this->mgMapID; >>>>> $objkeys = ''; >>>>> $errorMsg = null; >>>>> $siteConnection = $this->MapGuideObject->getSiteConnection(); >>>>> // Get an instance of the Resource and Mapping Services and >>>>> use them to open the map and initialize a selection object. >>>>> $resourceSrvc = $this->MapGuideObject->getResourceService(); >>>>> $featureSrvc = $this->MapGuideObject->getFeatureService(); >>>>> //Get selected map layers. >>>>> $sel = new MgSelection( $myMap ); >>>>> $sel->Open( $resourceSrvc, $mapName ); >>>>> $this->originalSel = $sel->ToXml(); >>>>> // this is where it appears to fail >>>>> $selLayers = $sel->GetLayers(); >>>>> >>>>> //script continues but likely not relevant >>>>> } >>>>> >>>>> Any input would be greatly appreciated. >>>>> _______________________________________________ >>>>> mapguide-users mailing list >>>>> [email protected] >>>>> https://lists.osgeo.org/mailman/listinfo/mapguide-users >>>>> >>>>
_______________________________________________ mapguide-users mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/mapguide-users
