Changeset 457

Show
Ignore:
Timestamp:
11/14/08 18:40:18 (2 months ago)
Author:
armin
Message:

patch by TRaffin for zoomtorectangle if the rectangle is not in the same proportions as the map

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pmapper/trunk/incphp/map/map.php

    r456 r457  
    486486 
    487487                $pixext = ms_newrectObj(); 
     488                 
     489                // Modified by Thomas RAFFIN (SIRAP) 
     490                // If the rectangle is not in the same proportions as the map, 
     491                // To leave the coeff Y / X unghanged, we need to made $geoNewCoeff = $geo0Coeff...  
     492                                $geo0Coeff = $this->mapheight / $this->mapwidth; 
     493                                $geoNewDeltaX = $pix_maxx - $pix_minx; 
     494                                $geoNewDeltaY = $pix_maxy - $pix_miny; 
     495                                $geoNewCoeff = $geoNewDeltaY / $geoNewDeltaX; 
     496                                if ($geoNewCoeff < $geo0Coeff) { 
     497                                        $newDeltaYCorrected = $geo0Coeff * $geoNewDeltaX; 
     498                                        $newDeltaYToAdd = ($newDeltaYCorrected - $geoNewDeltaY) / 2; 
     499                                        $pix_miny -= $newDeltaYToAdd; 
     500                                        $pix_maxy += $newDeltaYToAdd; 
     501                                } else { 
     502                                        $newDeltaXCorrected = $geoNewDeltaY / $geo0Coeff; 
     503                                        $newDeltaXToAdd = ($newDeltaXCorrected - $geoNewDeltaX) / 2; 
     504                                        $pix_minx -= $newDeltaXToAdd; 
     505                                        $pix_maxx += $newDeltaXToAdd; 
     506                                } 
     507 
    488508                $pixext->setextent($pix_minx,$pix_miny,$pix_maxx,$pix_maxy); 
    489509            }