[ka-Map-users] Zoom To Layer

Wagner, Jeffrey S. (DMS/CISD) j.wagner at ngc.com
Wed Sep 13 11:20:15 EDT 2006


I started by using init.php to set the layer extents.  However, my
layers are dynamic and re-drawn every minute.  Rather than updating the
extents when the layer changes, I used an AJAX call to get the extents
from XML whenever the user clicks on "zoom".  Then a call to
zoomTo(x,y,scale) is called. I did not define maxscale in my map file,
perhaps this is why $oLayer->maxscale didn't work for me.  As a hack, I
get the scale from the config.php file.

  if ($oLayer->getMetaData( "queryable" ) != "") {
            $rect = $oLayer->getExtent();
            $cx = ($rect->minx + $rect->maxx)/2;
		$cy = ($rect->miny + $rect->maxy)/2;
		      
		//oLayer->maxscale didn't work for me
		$maxscale=
$aszMapFile['scales'][count($aszMapFile['scales'])-1];
$layer = "<layer>";
		$layer.="<name>".$oLayer->name."</name>";
		$layer.="<x>".$cx."</x>";
		$layer.="<y>".$cy."</y>";
		$layer.="<maxscale>".$maxscale."</maxscale>";
		$layer.="</layer>";
        }
-----Original Message-----
From: Paul Spencer [mailto:pspencer at dmsolutions.ca] 
Sent: Wednesday, September 13, 2006 12:37 AM
To: Wagner, Jeffrey S. (DMS/CISD)
Cc: Ryan Ollerenshaw; Lucian Bancescu; ka-map-users at lists.maptools.org
Subject: Re: [ka-Map-users] Zoom To Layer

One thing we could do is add metadata to each layer in a mapfile that  
would define the extent of the layer.  Perhaps using the max_extents  
metadata on each layer?

If the $oLayer->getExtent() actually works, then we could do this in  
init.php when we are reading each map file anyway, although I expect  
this would seriously slow down initialization in some cases.

Using either mechanism, the layer extents could then be passed to  
kaMap in the init.php output.  The layer extents would be stored in  
each of the _layer objects and then it would be trivial to have a  
zoom to layer function in the legend or via some custom scripting.

Patches to implement this would be appreciated :)

Cheers

Paul

On 12-Sep-06, at 1:41 PM, Wagner, Jeffrey S. ((DMS/CISD)) wrote:

> I used MapScript to get the extent: $rect = $oLayer->getExtent();
> I don't think there is a setExtent function....
>
> -----Original Message-----
> From: ka-map-users-bounces at lists.maptools.org
> [mailto:ka-map-users-bounces at lists.maptools.org] On Behalf Of Ryan
> Ollerenshaw
> Sent: Tuesday, September 12, 2006 7:57 AM
> To: Lucian Bancescu
> Cc: ka-map-users at lists.maptools.org
> Subject: Re: [ka-Map-users] Zoom To Layer
>
> Lucian Bancescu wrote:
>> A pretty straightforward way to obtain the extent of a layer is using
>> ogrinfo, which comes with gdal-ogr tool.
>> A possible usage:
>> /
>> ogrinfo /path/to/shapefiles  layername | grep Extent
>> /
>
> Can you provide the MapScript to add to a layer so each layer has  
> it own
>
> extent?
> _______________________________________________
> ka-Map-users mailing list
> ka-Map-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/ka-map-users
>
> _______________________________________________
> ka-Map-users mailing list
> ka-Map-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/ka-map-users

+-----------------------------------------------------------------+
|Paul Spencer                           pspencer at dmsolutions.ca   |
+-----------------------------------------------------------------+
|Applications & Software Development                              |
|DM Solutions Group Inc                 http://www.dmsolutions.ca/|
+-----------------------------------------------------------------+







More information about the ka-Map-users mailing list