[mapguide-users] API - resource id does not refer to a valid feature source

Fritz Robert Robert.Fritz at win.ch
Wed Aug 12 07:21:11 PDT 2015


Hi,

so, with raster files just updating the path in ResourceContent is not enough. Raster files have an additional configuration document which stores the filepath as well.
It seems MapGuide Studio updates the configuration document when a data source is saved, in Maestro you can at least manually update the config document. There is no API for updating the configuration document.
If anyone else is faced with the same issue - here is  the main part of my quick and dirty PHP script:

// FDO Autodesk.Raster?
                                                               $blRaster= isFDORaster($contentDomDoc->getElementsByTagName('Provider'));
                                                               if($blRaster)
                                                               {
                                                                              //ConfigDocument - name
                                                                              $configDocName = getConfigDocName($contentDomDoc->getElementsByTagName('ConfigurationDocument'));
                                                                              if($configDocName != "")
                                                                              {
                                                                                              $resDataConfigDoc_byteReader = $resourceService->GetResourceData($fsourceID,$configDocName);
                                                                                              echo "<br><font color='red'>...processed..".$configDocName.".</font color><br>";

                                                                                              //XML processing change location/feature "name" attribute in config file


                                                                                              $xmlConfigDoc = $resDataConfigDoc_byteReader->ToString();
                                                                                              //file_put_contents($pathToFile."config_file_".$fsourceName.".xml",$xmlConfigDoc);
                                                                                              $xmlConfigDocDom = DOMDocument::loadXML($xmlConfigDoc);
                                                                                              $xmlConfigDocDom->preserveWhiteSpace = false;

                                                                                              replacePathInConfigXML($xmlConfigDocDom->getElementsByTagName('Location'), $pathOLD, $pathNEW);
                                                                                              replacePathInConfigXML($xmlConfigDocDom->getElementsByTagName('Feature'), $pathOLD, $pathNEW);


                                                                                              $pathTempFile = $pathToFile."config_file_new_".$fsourceName.".xml";
                                                                                              file_put_contents($pathTempFile,$xmlConfigDocDom->SaveXML());

                                                                                              // update repo
                                                                                              $fileByteContent = new MgByteSource($pathTempFile);
                                                                                              $fileReader = $fileByteContent->GetReader();
                                                                                              $resourceService->SetResourceData($fsourceID, $configDocName, "Stream", $fileReader);

                                                                              }
                                                               }


Rob


Von: mapguide-users-bounces at lists.osgeo.org [mailto:mapguide-users-bounces at lists.osgeo.org] Im Auftrag von Fritz Robert
Gesendet: Dienstag, 11. August 2015 15:40
An: mapguide-users at lists.osgeo.org
Betreff: [mapguide-users] API - resource id does not refer to a valid feature source

Hi,

I changed the data source from local path to alias per PHP script.

For SDF/SHP files this works fine.

For raster data I get a problem:
-- raster files are not displayed
-- Mapguide log file shows an entry where Mapguide complains that file doesn't exist (still pointing to the local path)
-- in MapGuide Studio the data source connection (using the alias) is fine (Test: ok) but when I open a layer which refers to the data source I get "resource id does not refer to a valid feature source"

I can solve the issue manually when I just save the data source connection in Studio.

But how can I solve/avoid the issue using PHP API?

Any ideas?

Rob





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapguide-users/attachments/20150812/05279b7a/attachment.html>


More information about the mapguide-users mailing list