reverse of click2map (convert geographic coordinates into pixel value)

Stuart Eve stuarteve at LPARCHAEOLOGY.COM
Thu Jan 26 14:33:09 PST 2006


Ok in case anyone's interested, here's how I solved the below problem:

My point theme is stored (in the shapefile) in LatLongs and so when I 
loop through the features, I get bounding boxes ($bounds) in LatLongs.

My map however then gets projected into a different coordinate system 
(ETRS-89 LCC) when its drawn.

So in order to get the map2click function to work, I needed to project 
each bounding box (by using $bounds->project ) first and then run 
map2click. Thanks for the code, Ace.

Hope this helps someone.

Stu

Stuart Eve wrote:

> Hi all,
>
> I'm trying to convert a geographic coordinate into a pixel value (i.e. 
> the reverse of the click2map demo script).
>
> I have searched around and found Ace Suares' script:
>
> function map2click ( $map, $bounds ) {
>        $bounds_average_x = ( $bounds->maxx + $bounds->minx ) / 2;
>        $bounds_average_y = ( $bounds->miny + $bounds->maxy ) / 2;
>        $x_pct = ( ( $bounds_average_x - $map->extent->minx ) / ( 
> $map->extent->maxx - $map->extent->minx ) );
>        $y_pct = ( ( $bounds_average_y - $map->extent->miny ) / ( 
> $map->extent->maxy - $map->extent->miny ) );
>        $x_map = intval( $map->width * $x_pct );
>        $y_map = intval( $map->height * (1 - $y_pct) );
>        return array( $x_map, $y_map );
> }
>
> But this doesn't seem to be working for me - it just returns a very 
> big negative number.
>
> I am using a point theme - with the data stored in LatLongs.
>
> Has anyone seen a script to do this?
>
> Thanks in advance,
>
> Stuart
>


-- 
Stuart Eve
L - P : Archaeology
stuarteve at lparchaeology.com 



More information about the MapServer-users mailing list