Dear All,

I have a select and zoom to extents problem in the ajax viewer. The user
chooses a postcode from a list, and this returns multiple results. I simply
want the map to zoom to the combined extent of these results. I thought the
right option to use is GetExtents, but when I try and derive the coordinates
from the envelope this creates (as a method of checking the php is correct
before moving on to the javascript), it returns the same value each time,
which I assume is probably the value for the entire layer. I have checked
that the correct number of features are returned, so I know it's not that.
Any thoughts would be greatly appreciated.

My code is as follows:

        MgInitializeWebTier ($webconfigFilePath);

                $userInfo = new MgUserInformation($sessionId);
                $siteConnection = new MgSiteConnection();
                $siteConnection->Open($userInfo);

                echo $mapName."<br />";
                $map = new MgMap($siteConnection);
                $map->Open($mapName);
        
                $cfilter = "POSTCODE = '$ccode'"; 
                echo $cfilter.'<br />';


                $queryOptions = new MgFeatureQueryOptions(); 
                $queryOptions->SetFilter($cfilter); 

                echo $SMAlayer.'<br />';
                $layers = $map->GetLayers();
                $selLayer = $layers->GetItem($SMAlayer);


                $featureresourceID = new
MgResourceIdentifier($selLayer->GetFeatureSourceId());  
                $featureclassname = $selLayer->GetFeatureClassName();
                $featureService =
$siteConnection->CreateService(MgServiceType::FeatureService);
                $dataReader = 
$featureService->SelectFeatures($featureresourceID,
$featureclassname, $queryOptions);
                $dataReader->ReadNext();
                //$resourceService =
$siteConnection->CreateService(MgServiceType::ResourceService);
        
                $selection = new MgSelection($map);
                $selection->AddFeatures($selLayer, $dataReader, 0);


                //$selection->Save($resourceService, $mapName);
                        
      

                $count =
$selection->GetSelectedFeaturesCount($selLayer,$featureclassname);
                echo 'Count: '.$count.'<br />';
                $dataReader->Close();
                $extent = $selection->GetExtents($featureService);
                $upperRightY = $extent->GetUpperRightCoordinate()->GetY();
                $lowerLeftX=$extent->GetLowerLeftCoordinate()->GetX();
                $width = $extent->GetWidth();
                $height = $extent->GetHeight();
                $centreX = $lowerLeftX + ($width)/2;
                $centreY = $upperRightY - ($height)/2;
                echo "Centre Coordinates: ".$centreX.",".$centreY;

Thanks

Jo
-- 
View this message in context: 
http://n2.nabble.com/Zooming-to-extent-of-multiple-selections-tp4199009p4199009.html
Sent from the MapGuide Users mailing list archive at Nabble.com.
_______________________________________________
mapguide-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapguide-users

Reply via email to