private function _calculateScale()
 {
     $leftUp = $this->_map->getLeftUpCorner();
     $rightDown = $this->_map->getRightDownCorner();
     $lat = abs(($leftUp['lat'] + $rightDown['lat']) / 2);
     return 1 / cos(deg2rad($lat));
 }
 /**
  * get pixel coordinates for cuting result map from temporary one
  *
  * @return array coordinates of the left up corner
  */
 protected function _getLeftUpCornerForCutingResultMap(Map $map)
 {
     $leftUpCornerOfTemporaryMap = $map->getLeftUpCorner();
     $leftUpCornerOfTemporaryMapInPixels = $this->_worldMap->getPixelXY($leftUpCornerOfTemporaryMap['lon'], $leftUpCornerOfTemporaryMap['lat']);
     $leftUpCornerOfResultMap = $this->_mapData->getLeftUpCornerPoint();
     $leftUpCornerOfResultMapInPixels = $this->_worldMap->getPixelXY($leftUpCornerOfResultMap['lon'], $leftUpCornerOfResultMap['lat']);
     return array('x' => $leftUpCornerOfResultMapInPixels['x'] - $leftUpCornerOfTemporaryMapInPixels['x'], 'y' => $leftUpCornerOfResultMapInPixels['y'] - $leftUpCornerOfTemporaryMapInPixels['y']);
 }
 public function setData(Map $map)
 {
     $leftUp = $map->getLeftUpCorner();
     $rightDown = $map->getRightDownCorner();
     $this->setLeft($leftUp['lon']);
     $this->setUp($leftUp['lat']);
     $this->setRight($rightDown['lon']);
     $this->setDown($rightDown['lat']);
 }
 /**
  * get pixel coordinates for cuting result map from temporary one
  *
  * @return array coordinates of the left up corner
  */
 protected function _getLeftUpCornerForCutingResultMap(Map $map)
 {
     $leftUpBigMap = $map->getLeftUpCorner();
     $leftUpBigMapInPixels = $this->_worldMap->getPixelXY($leftUpBigMap['lon'], $leftUpBigMap['lat']);
     $centerPoint = $this->_mapData->getCenterPoint();
     $centerPointInPixels = $this->_worldMap->getPixelXY($centerPoint['lon'], $centerPoint['lat']);
     $leftUpPointInPixels = array('x' => $centerPointInPixels['x'] - round($this->_mapData->getWidth() / 2), 'y' => $centerPointInPixels['y'] - round($this->_mapData->getHeight() / 2));
     $result = array('x' => $leftUpPointInPixels['x'] - $leftUpBigMapInPixels['x'], 'y' => $leftUpPointInPixels['y'] - $leftUpBigMapInPixels['y']);
     return $result;
 }
 public function __construct(Map $map, Conf $conf)
 {
     $this->setImageHandler($map->getImageHandler());
     $this->_logoLayout = LogoLayout::factory($conf->get('logo_layout'));
     $this->_logoFiles = $conf->get('logo_files');
     $this->setWorldMap($map->getWorldMap());
     $leftUpCorner = $map->getLeftUpCorner();
     $this->setLeftUpCorner($leftUpCorner['lon'], $leftUpCorner['lat']);
     $rightDownCorner = $map->getRightDownCorner();
     $this->setRightDownCorner($rightDownCorner['lon'], $rightDownCorner['lat']);
     parent::__construct($map->getImage());
 }