/** * return the logo image which fits the best to the size of the map * * @return resource */ private function _chooseLogoFile() { $mapWidth = imagesx($this->_img); $mapHeight = imagesy($this->_img); foreach ($this->_logoFiles as $logoFile) { $logoImageHandler = ImageHandler::createImageHandlerFromFileExtension($logoFile); $logoImage = $logoImageHandler->loadImage($logoFile); $logoWidth = imagesx($logoImage); $logoHeight = imagesy($logoImage); if ($logoWidth < $mapWidth && $logoHeight < $mapHeight) { return $logoImage; } } return $logoImage; }
/** * draw point on map * * @param Map $map */ public function draw(Map $map) { $image = $map->getImage(); $color = $this->_getDrawColor($image); $pointImage = false; if ($this->hasImageUrl()) { $size = HelpClass::getSizeOfRemoteFile($this->_imageUrl->getUrl()); if ($size <= self::$maxSizeOfPointImage) { try { $imageHandler = ImageHandler::createImageHandlerFromFileExtension($this->_imageUrl->getUrl()); $pointImage = $imageHandler->loadImage($this->_imageUrl->getUrl()); } catch (ImageHandlerException $e) { } } } if ($pointImage !== false) { $map->putImage($pointImage, $this->getLon(), $this->getLat()); } else { $color = $this->_getDrawColor($image); $point = $map->getPixelPointFromCoordinates($this->getLon(), $this->getLat()); $vertices = array($point['x'], $point['y'], $point['x'] - 10, $point['y'] - 20, $point['x'] + 10, $point['y'] - 20); imagefilledpolygon($map->getImage(), $vertices, 3, $color); } }
public function __construct($fileName) { $this->setImageHandler(ImageHandler::createImageHandlerFromFileExtension($fileName)); parent::__construct($this->_imageHandler->loadImage($fileName)); }