[mapguide-users] Highlight selections problem

Jo Cook j.cook at oxfordarch.co.uk
Fri Aug 7 07:24:51 EDT 2009


Hi Rodolfo,

I'm actually using a shapefile for my test implementation (as my
postgresql/postgis setup is version 8.4/1.4 which the fdo provider doesn't
like). The field I am using to make the selection is a unique integer-
should that be enough? 
Thanks

Jo

Rodolfo Moreno wrote:
> 
> Hi Jo,
> I thinks that your problem is with your database. does your table
> containing the geometries have primary key and spatial indexs? 
> 
> regards,
> 
> 
> Jo Cook wrote:
>> 
>> Dear All,
>> 
>> I have the fairly common problem of wanting to pick a feature from a
>> database and have the map automatically zoom to the correct location and
>> highlight the feature. I am doing this in php and javascript (MGOS 2.1
>> with bundled apache configuration), following some extremely helpful code
>> snippets I found in the forum. Thanks!
>> 
>> I have now got stuck at the point where a lot of other people seem to get
>> stuck, namely that the map zooms to the correct location and shows in the
>> status bar that one feature is selected, but the feature doesn't show up
>> as highlighted. I understand, from trawling the forum, that I need to
>> save and refresh in order to highlight the feature.
>> 
>> The only problem is that I have tried many combinations of map save and
>> selection save, and have looked in the api documentation, and tried
>> figuring out where in my code it needs to go, and nothing seems to work,
>> and now I'm horribly confused as to which of these I am supposed to be
>> using. Am I saving a selection, or saving a map? 
>> 
>> This is the relevant section of php:
>> 
>> 	    $resourceSrvc =
>> $siteConn->CreateService(MgServiceType::ResourceService);
>> 	    $map = new MgMap();
>> 	    $resId = new
>> MgResourceIdentifier("Library://maps/map1.MapDefinition");
>> 	    $mapName = $resId->GetName();
>> 	    $map->Create($resourceSrvc, $resId, $mapName);
>> 
>> 			    
>> 	    $layers = $map->GetLayers();
>> 	    $selLayer = $layers->GetItem($SMAlayer);
>> 		$featureResourceId = new
>> MgResourceIdentifier($selLayer->GetFeatureSourceId());
>> 		$featureClassName = $selLayer->GetFeatureClassName();
>> 		
>> 	   
>> 		$filter = "site_code = '$SMAlocation'"; 
>> 		
>> 		$queryOptions = new MgFeatureQueryOptions(); 
>> 		$queryOptions->SetFilter($filter); 
>> 	   
>> 	    $featureSrvc =
>> $siteConn->CreateService(MgServiceType::FeatureService);
>> 	    $featureReader = $featureSrvc->SelectFeatures($featureResourceId,
>> $featureClassName, $queryOptions);
>> 	                         
>> 	    $selection = new MgSelection($map);
>> 		$selection->AddFeatures($selLayer, $featureReader, 1);
>> 		$selectionXml = $selection->ToXml();
>> 		$selection->Save($resourceSrvc, $mapName);
>> 
>> Then this is the javascript
>> 
>> <SCRIPT LANGUAGE="JavaScript">
>> 
>> var initTimer;
>> 
>> function InitDocument()
>> 	{
>>      //wait for map to be fully initialized
>>      //then call the initial function 
>>    	 initTimer = setInterval(DelayedInit, 200); 
>> 	 
>> 	 }
>>  
>>  function DelayedInit() {
>>         try {
>>           if(parent.ViewerFrame.mapFrame.mapInit) {
>>            clearInterval(initTimer);
>>            parent.ViewerFrame.mapFrame.ZoomToView(<?php echo $centerX;
>> ?>, <?php echo $centerY; ?>, 2000, true);
>> 			var selectionXml = '<?php echo $selectionXml; ?>';
>> 			parent.ViewerFrame.mapFrame.SetSelectionXML(selectionXml);
>> 			parent.ViewerFrame.mapFrame.ExecuteMapAction(1);
>> 			parent.ViewerFrame.mapFrame.Refresh();
>> 			            
>>         }
>>     }
>>      catch(e) {}
>>  }
>> 
>> </SCRIPT>
>>   
>> </HEAD>
>> 
>> <BODY onLoad="InitDocument()">
>> 
>> 
>> </BODY>
>> </HTML>
>> 
>> 
>> This doesn't work, but doesn't seem to throw up any errors. Any help
>> would be very much appreciated! To reiterate, I have searched the
>> documentation and forums, but remain confused...
>> 
>> Thanks
>> 
>> Jo
>> -- 
>> -----------------------------------------------------
>> Joanne Cook
>> Senior IT Support and Development
>> Oxford Archaeology (North)
>> 01524 880212
>> http://thehumanjourney.net
>> 
>> 
>> ------
>> Files attached to this email may be in ISO 26300 format (OASIS Open
>> Document Format). If you have difficulty opening them, please visit
>> http://iso26300.info for more information.
>> 
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>> 
>> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/Highlight-selections-problem-tp3398199p3403784.html
Sent from the MapGuide Users mailing list archive at Nabble.com.


More information about the mapguide-users mailing list