From dbowenrci at gmail.com Mon May 25 10:34:58 2026 From: dbowenrci at gmail.com (David Bowen) Date: Mon, 25 May 2026 13:34:58 -0400 Subject: [mapguide-users] MGOS 4 Final Release and GetLayers Message-ID: 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gordon.luckett at arrowgeomatics.com Thu May 28 06:15:08 2026 From: gordon.luckett at arrowgeomatics.com (Gordon Luckett) Date: Thu, 28 May 2026 09:15:08 -0400 Subject: [mapguide-users] MGOS 4 Final Release and GetLayers In-Reply-To: References: Message-ID: 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 < mapguide-users at lists.osgeo.org> 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 > mapguide-users at lists.osgeo.org > https://lists.osgeo.org/mailman/listinfo/mapguide-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dbowenrci at gmail.com Thu May 28 08:27:35 2026 From: dbowenrci at gmail.com (David Bowen) Date: Thu, 28 May 2026 11:27:35 -0400 Subject: [mapguide-users] MGOS 4 Final Release and GetLayers In-Reply-To: References: Message-ID: 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 < gordon.luckett at arrowgeomatics.com> 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 < > mapguide-users at lists.osgeo.org> 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 >> mapguide-users at lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/mapguide-users >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gordon.luckett at arrowgeomatics.com Thu May 28 08:47:25 2026 From: gordon.luckett at arrowgeomatics.com (Gordon Luckett) Date: Thu, 28 May 2026 11:47:25 -0400 Subject: [mapguide-users] MGOS 4 Final Release and GetLayers In-Reply-To: References: Message-ID: 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 . '
'; } Works well. gordon On Thu, May 28, 2026 at 11:27?AM David Bowen 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 < > gordon.luckett at arrowgeomatics.com> 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 < >> mapguide-users at lists.osgeo.org> 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 >>> mapguide-users at lists.osgeo.org >>> https://lists.osgeo.org/mailman/listinfo/mapguide-users >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From dbowenrci at gmail.com Fri May 29 06:03:20 2026 From: dbowenrci at gmail.com (David Bowen) Date: Fri, 29 May 2026 09:03:20 -0400 Subject: [mapguide-users] MGOS 4 Final Release and GetLayers In-Reply-To: References: Message-ID: 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 < gordon.luckett at arrowgeomatics.com> 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 . '
'; > } > > Works well. > > gordon > > > On Thu, May 28, 2026 at 11:27?AM David Bowen 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 < >> gordon.luckett at arrowgeomatics.com> 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 < >>> mapguide-users at lists.osgeo.org> 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 >>>> mapguide-users at lists.osgeo.org >>>> https://lists.osgeo.org/mailman/listinfo/mapguide-users >>>> >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From gordon.luckett at arrowgeomatics.com Fri May 29 06:26:36 2026 From: gordon.luckett at arrowgeomatics.com (Gordon Luckett) Date: Fri, 29 May 2026 09:26:36 -0400 Subject: [mapguide-users] MGOS 4 Final Release and GetLayers In-Reply-To: References: Message-ID: 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 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 < > gordon.luckett at arrowgeomatics.com> 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 . '
'; >> } >> >> Works well. >> >> gordon >> >> >> On Thu, May 28, 2026 at 11:27?AM David Bowen 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 < >>> gordon.luckett at arrowgeomatics.com> 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 < >>>> mapguide-users at lists.osgeo.org> 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 >>>>> mapguide-users at lists.osgeo.org >>>>> https://lists.osgeo.org/mailman/listinfo/mapguide-users >>>>> >>>> -------------- next part -------------- An HTML attachment was scrubbed... URL: